• Git 开源的版本控制系统-04-branch manage 分支管理


    拓展阅读

    Subversion 开源的版本控制系统入门介绍 VCS

    Git 开源的版本控制系统-01-入门使用介绍

    Git 开源的版本控制系统-02-base usage 基本用法

    Git 开源的版本控制系统-03-时间数据回溯

    Git 开源的版本控制系统-04-branch manage 分支管理

    Git 开源的版本控制系统-05-tags 标签管理

    Git 开源的版本控制系统-06-share to github 如何把项目代码共享到 github

    Git 开源的版本控制系统-07-gitignore 指定忽略版本管理的文件

    分支管理

    • 查看分支

    本地

    $   git branch

      远程

      $   git branch -r

        所有

        $   git branch -a
          • 创建与切换
          houbinbindeMacBook-Pro:git-demo houbinbin$ git branch git_demo_1.1
          houbinbindeMacBook-Pro:git-demo houbinbin$ git branch
            git_demo_1.1
          * master
          houbinbindeMacBook-Pro:git-demo houbinbin$ git checkout git_demo_1.1
          切换到分支 'git_demo_1.1'
          houbinbindeMacBook-Pro:git-demo houbinbin$
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6

          与以下命令相同

          $   git checkout -b 
            • 推送分支到 Github
            $   git push origin [分支名]
              • 删除分支

              本地

              $   git branch -d [分支名]

                Github 远程

                $   git push origin --delete <分支名>

                  git wiki

                  
                  $ git checkout master
                  
                  $ git pull
                  
                  $ git checkout 分支
                  
                  $ git rebase master     (用rebase合并主干的修改,如果有冲突在此时解决)
                  
                  $ git checkout master
                  
                  $ git merge 分支
                  
                  $ git push
                  
                  • 1
                  • 2
                  • 3
                  • 4
                  • 5
                  • 6
                  • 7
                  • 8
                  • 9
                  • 10
                  • 11
                  • 12
                  • 13
                  • 14
                  • 推送

                  注意,合并后它没有暂存区,所以,提交会告诉你没有变化。

                  您应该使用 git push origin master

                  $   git push    //推送到当前分支
                  $   git push origin master  //推送到主分支
                  • 1
                  • 分支合并提示

                  通常,当合并时,git 会使用 Fast Forward 模式,我们可以使用 --no-ff 进行合并。

                  houbinbindeMacBook-Pro:git-demo houbinbin$ git checkout -b git_demo_1.2
                  切换到一个新分支 'git_demo_1.2'
                  
                  houbinbindeMacBook-Pro:git-demo houbinbin$ git add README.md
                  houbinbindeMacBook-Pro:git-demo houbinbin$ git commit -m "change git_demo_1.2"
                  [git_demo_1.2 8983fd1] change git_demo_1.2
                   1 file changed, 2 insertions(+), 1 deletion(-)
                  
                  houbinbindeMacBook-Pro:git-demo houbinbin$ git checkout master
                  切换到分支 'master'
                  您的分支与 'origin/master' 一致。
                  houbinbindeMacBook-Pro:git-demo houbinbin$ git merge --no-ff -m "merge with --no-ff" git_demo_1.2
                  合并分支 'git_demo_1.2' 到 'master'
                  Fast-forward
                   README.md | 3 ++-
                   1 file changed, 2 insertions(+), 1 deletion(-)
                  • 1
                  • 2
                  • 3
                  • 4
                  • 5
                  • 6
                  • 7
                  • 8
                  • 9
                  • 10
                  • 11
                  • 12
                  • 13
                  • 14
                  • 15

                  现在,查看日志

                  houbinbindeMacBook-Pro:git-demo houbinbin$ git log --graph --pretty=oneline --abbrev-commit
                  *   0d899d1 merge with --no-ff
                  |\
                  | * 8983fd1 change git_demo_1.2
                  |/
                  * d696904 add pom.xml
                  * cd84e27 git diff
                  * 9f18a0c add readme
                  * 965cf5d first commit
                  • 1
                  • 2
                  • 3
                  • 4
                  • 5
                  • 6
                  • 7
                  • 8
                  • 删除本地分支
                  $   git branch -d xxxxx

                    Bug 分支

                    如果在工作的过程中,您必须解决其他问题。

                    例如,您在分支 1.2 上编写了一些东西,但是有一个 bug 需要修复,我们应该如何处理?

                    • git stash

                    这个命令可以保存当前的工作状态。

                    houbinbindeMacBook-Pro:git-demo houbinbin$ git status
                    在分支 master
                    您的分支领先 'origin/master' 2 个提交。
                      (使用 "git push" 来发布您的本地提交)
                    未暂存的变更:
                      (使用 "git add ..." 更新要提交的内容)
                      (使用 "git checkout -- ..." 丢弃工作区的更改)
                    
                            修改:     README.md
                    
                    没有要提交的变更(使用 "git add" 和/或 "git commit -a")
                    • 1
                    • 2
                    • 3
                    • 4
                    • 5
                    • 6
                    • 7
                    • 8
                    • 9
                    • 10

                    现在,我们可以切换到 master 分支并解决 bug。

                    houbinbindeMacBook-Pro:git-demo houbinbin$ git checkout master
                    已经位于 'master'
                    您的分支领先 'origin/master' 2 个提交。
                      (使用 "git push" 来发布您的本地提交)
                    houbinbindeMacBook-Pro:git-demo houbinbin$ git checkout -b git_demo_bug_001
                    切换到一个新分支 'git_demo_bug_001'
                    houbinbindeMacBook-Pro:git-demo houbinbin$ git add README.md
                    houbinbindeMacBook-Pro:git-demo houbinbin$ git commit -m "fix the bug"
                    [git_demo_bug_001 4069a0c] 修复 bug
                     1 file changed, 2 insertions(+), 1 deletion(-)
                    
                    houbinbindeMacBook-Pro:git-demo houbinbin$ git checkout master
                    切换到分支 'master'
                    您的分支领先 'origin/master' 2 个提交。
                      (使用 "git push" 来发布您的本地提交)
                    houbinbindeMacBook-Pro:git-demo houbinbin$ git merge git_demo_bug_001
                    更新 0d899d1..4069a0c
                    Fast-forward
                     README.md | 3 ++-
                     1 file changed, 2 insertions(+), 1 deletion(-)
                    
                    • 1
                    • 2
                    • 3
                    • 4
                    • 5
                    • 6
                    • 7
                    • 8
                    • 9
                    • 10
                    • 11
                    • 12
                    • 13
                    • 14
                    • 15
                    • 16
                    • 17
                    • 18
                    • 19
                    • 20

                    修复了 bug 后,我们可以切换到 1.2 分支,继续工作

                    houbinbindeMacBook-Pro:git-demo houbinbin$ git stash list
                    stash@{0}: 在 master 上 WIP: 0d899d1 merge
                    
                     with --no-ff
                    houbinbindeMacBook-Pro:git-demo houbinbin$ git stash pop
                    切换到分支 'git_demo_1.2'
                    未暂存的变更:
                      (使用 "git add ..." 更新要提交的内容)
                      (使用 "git checkout -- ..." 丢弃工作区的更改)
                    
                            修改:     README.md
                    
                    没有要提交的变更(使用 "git add" 和/或 "git commit -a")
                    Dropped refs/stash@{0} (9cd4d92f41db2cdb1b8e15ffde7c73c4fd6ef83c)
                    houbinbindeMacBook-Pro:git-demo houbinbin$ git stash list
                    • 1
                    • 2
                    • 3
                    • 4
                    • 5
                    • 6
                    • 7
                    • 8
                    • 9
                    • 10
                    • 11
                    • 12
                    • 13
                    • 14

                    本文由博客一文多发平台 OpenWrite 发布!

                  • 相关阅读:
                    中国剩余定理
                    WPF 控件专题 Ellipse详解
                    在Git中创建本地分支并关联远程分支
                    el-table行添加阴影悬浮效果
                    虚拟机CentOS7连接物理主机WiFi
                    【无标题】
                    年薪26W+,入职外包公司三年,我是如何做到的?
                    云计算与大数据——Spark的安装和配置
                    全志A523(显示篇一)
                    国际站腾讯云服务器登录后的界面在哪里看到?
                  • 原文地址:https://blog.csdn.net/ryo1060732496/article/details/136552287