分支就是暂时从主线代码离开,去专注于开发一个新特性或者解决一个小 bug,git 创建和切换分支都能在瞬间完成,默认的 git 仓库,输入 git branch 可以看到只有一个 master 分支,通常这就是主分支。
wangbo@wangbo-VirtualBox:~/test/git-demo$ git branch* master
假设现在需要开发一个打印的新特功能,分支名称为 feature_print,从 master 分支离开去新的分支有几个写法:
1. git branch feature_print(或 git branch feature_print master ) && git checkout feature_print(或 git switch feature_print)
2. git checkout -b feature_print(或 git checkout -b feature_print master)
3. git switch -c feature_print (或 git switch -c feature_print master)
其中 git switch 是新版本的 git 命令,以前的章节讲过 git checkout 用来恢复文件,checkout 本身是签出文件的意思,用来切换分支语义上有点模糊,后连就增加了语义更加明确的 switch 切换,随时都可以使用 git branch 查看分支的情况,前面的 * 表示你当前所在的分支。
wangbo@wangbo-VirtualBox:~/test/git-demo$ git branch* feature_print master
在新的分支下,可以专注于开发打印的功能了,我们添加一个 print.c 文件提交,从提交日志上看,工作成果是放到了 feature_print 分支上。
如果想知道两个分支的变化,可以使用 git diff 分支1 分支2,比如输入 git diff master feature_print,由于我们当前就在 feature_print 分支上,可以简化输入 git diff master 来和 master 分支相比较。
可以非常清楚的看到了新增的打印相关的代码,假设打印的功能已经开发完成了,我们需要希望在主干分支上合并新的打印功能的代码ÿ