【git】常用操作

慈云数据 1年前 (2024-03-18) 技术支持 130 0

基础操作

  • git init 初始化仓库

    要使用 Git 进行版本管理,必须先初始化仓库, 执行了 git init命令的目录下就会生成 .git 目录。这个 .git 目录里存储着管理当前目录内容所需的仓库数据

    【git】常用操作
    (图片来源网络,侵删)
    • git status 查看仓库状态

      工作树和仓库在被操作的过程中,状态会不断发生变化。在 Git 操作过程中时常用 git status命令查看当前状态,

      git status
      
      • git add 向暂存区中添加文件

        要想让新建的文件成为 Git 仓库的管理对象,就需要用 git add命令将其加入暂存区(Stage 或者 Index)中。暂存区是提交之前的一个临时区域。

        【git】常用操作
        (图片来源网络,侵删)
        git add ./filename
        
        • git commit 保存仓库的历史记录

          git commit命令可以将当前暂存区中的文件实际保存到仓库的历史记录中。通过这些记录,我们就可以在工作树中复原文件。

          git commit -m '提交信息'
          #修改提交信息
          git commit --amend
          #git add+commit 合并操作
          git commit -am '提交信息'
          
          • git log 查看提交日志
            # 查看全部日志
            git log 
            #查看指定目录、文件日志
            git log filename
            #查看提交所带来的改动
            git log -p 
            #查看文件提交前后的差别
            git log -p filename
            #以图表形式查看分支
            git log --graph
            
            • git diff 查看更改前后差别

              git diff命令可以查看工作树、暂存区、最新提交之间的差别。

              # 执行 git diff命令,查看当前工作树与暂存区的差别
              git diff
              #查看工作树和最新提交的差别 HEAD是指向当前分支中最新一次提交的指针。
              git diff HEAD
              

              分支操作

              • git branch 查看分支
                # 显示分支列表并确定当前所在分支
                git branch 
                #-a参数可以同时显示本地仓库和远程仓库的分支信息
                git branch -a
                # 删除指定分支
                git branch -d 
                
                • git check 切换分支
                  # 切换分支
                  git checkout 
                  #切换回上一个分支
                  git checkout -
                  # 以当前所在分支为基础创建新的分支
                  git checkout -b 
                  

                  特性分支:特性分支顾名思义,是集中实现单一特性(主题),此之外不进行任何作业的分支。基于特定主题的作业在特性分支中进行,主题完成后再与 master 分支合并。只要保持这样一个开发流程,就能保证 master 分支可以随时供人查看。这样一来,其他开发者也可以放心大胆地从 master 分支创建新的特性分支。

                  主干分支:主干分支是刚才我们讲解的特性分支的原点,同时也是合并的终点。通常会用 master 分支作为主干分支。主干分支中并没有开发到一半的代码,可以随时供他人查看。主干分支总是配置在正式环境中

                  • git merge 合并分支
                    # 切换至主干分支
                    checkout master
                    #将特性分支代码合并至主干分支
                    git merge --no--ff 
                    

                    更改提交操作

                    • git reset 回溯历史版本

                      要让仓库的 HEAD、暂存区、当前工作树回溯到指定状态,需要用到 git rest --hard命令。只要提供目标时间点的哈希值 ,就可以完全恢复至该时间点的状态

                      git reset --hard fd0cbf0d4a25f747230694d95cac1be72d33441d
                      

                      git log命令只能查看以当前状态为终点的历史日志。所以这里要使用 git reflog命令,查看当前仓库的操作日志。在日志中找出回溯历史之前的哈希值,通过 git reset --hard命令恢复到回溯历史前的状态。

                      git reflog
                      4096d9e HEAD@{0}: commit: Fix B
                      fd0cbf0 HEAD@{1}: checkout: moving from master to fix-B
                      fd0cbf0 HEAD@{2}: reset: moving to fd0cbf0d4a25f747230694d95cac1be72d33441d
                      83b0b94 HEAD@{3}: merge feature-A: Merge made by the 'recursive' strategy.
                      fd0cbf0 HEAD@{4}: checkout: moving from feature-A to master
                      8a6c8b9 HEAD@{5}: checkout: moving from master to feature-A
                      fd0cbf0 HEAD@{6}: checkout: moving from feature-A to master
                      8a6c8b9 HEAD@{7}: commit: Add feature-A
                      fd0cbf0 HEAD@{8}: checkout: moving from master to feature-A
                      fd0cbf0 HEAD@{9}: commit: Add index
                      9f129ba HEAD@{10}: commit (initial): First commit
                      

                      在日志中,我们可以看到 commit、checkout、reset、merge 等 Git 命令的执行记录。只要不进行 Git 的 GC(Garbage Collection,垃圾回收),就可以通过日志随意调取近期的历史状态,就像给时间机器指定一个时间点,在过去未来中自由穿梭一般。即便开发者错误执行了 Git 操作,基本也都可以利用 git reflog命令恢复到原先的状态

                      远程仓库

                      • git remote add 添加远程仓库
                        git remote add origin git@github.com:github-book/git-tutorial.git
                        
                        • git push 推送至远程仓库
                          #将当前分支下的内容推送给远程仓库origin的master分支
                          git push origin master
                          
                          • git clone 获取远程仓库

                            执行 git clone命令后我们会默认处于 master 分支下,同时系统会自动将 origin 设置成该远程仓库的标识符。也就是说,当前本地仓库的 master 分支与 GitHub 端远程仓库(origin)的 master 分支在内容上是完全相同的

                            git clone git@github.com:github-book/git-tutorial.git
                            
                            • 获取远程仓库feature-D分支
                              • b 参数的后面是本地仓库中新建分支的名称。新建分支名称后面是获取来源的分支名称。以名为 origin 的仓库的 feature-D 分支为来源,在本地仓库中创建 feature-D 分支。
                                git checkout -b feature-D origin/feature-D
                                
                                • git pull 获取最新的远程仓库分支
                                   git pull origin master
                                  
微信扫一扫加客服

微信扫一扫加客服