创建与删除分支
创建分支:git branch <name>
,例如我们创建一个dev
新分支::
$ git branch dev
没有任何提示,表明已经创建成功。
可以使用命令 git brach
查看当前仓库的所有分支:
$ git branch
dev
* master
可以看到现在整个仓库有两个分支:dev
和 master
, Git会使用 *
标记当前分支,所以现在是在主分支 master
分支上。
那么如何切换到dev
分支呢? 使用命令:git checkout <name>
:
$ git checkout dev
Switched to branch 'dev'
此时Git告诉我们,已经成功切换到 dev
分支,再来查看一下当前所有分支:
$ git brach
* dev
master
可以看到,当前确实是在dev
分支(*标记)。
其实也可以一步实现创建新分支并切换到该分支,例如我们创建 feature
分支并切换到该分支:使用命令:git checkout -b <name>
:
$ git checkout -b dev
Switched to a new branch 'dev'
其实就是相当于上面的两条命令的合并:git branch dev
和 git checkout dev
。
如果这个时候你已经不需要除了主分支之外的其他分支,即需要删除分支,使用命令:git branch -d <name>
即可, 比如我们要删除 dev
分支, 然后再查看删除后仓库的分支:
$ git branch -d dev
Deleted branch dev (was d6932d6).
$ git branch
* master
由上面的几行英文就可以知道 dev
分支被删除,现在仓库只剩下了 master
分支。
现在假如你开始在新的分支上工作,正如我们之前所说,工作完成后怎样合并到主分支上呢? 现在给出解答:
比如现在在 dev
分支上修改了readme.txt
文件,在末尾加上一句话:creat new branch and merge to master
:
$ git checkout dev
Switched to branch 'dev'
...//为readme.txt添加一行
$ cat readme.txt
git is a version control tool
git is the most advaced version control system
i learn git now
i think git is better than SVN
creat new branch and merge to master
然后提交:
$ git add readme.txt
$ git commit -m 'test merge'
[dev d08d313] test merge
1 file changed, 1 insertion(+)
这个时候我们切换到 master
分支查看 readme.txt
文件内容:
$ git checkout master
M readme.txt
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
$ cat readme.txt
git is a version control tool
git is the most advaced version control system
i learn git now
i think git is better than SVN
发现这个时候 master
添加的一行内容并不存在,这是因为你刚才是在dev分支,而此刻的 master
并没有改变。
现在我们将dev
分支上的修改合并到master
分支,在master
分支上使用命令: git merge dev
:
$ git merge dev
Updating d6932d6..d08d313
Fast-forward
readme.txt | 1 +
1 file changed, 1 insertion(+)
可以看到,Git告诉我们已经更新,使用的合并方式是 Fast-forward,然后再来看 master
分支下的 readme.txt
的内容:
$ cat readme.txt
git is a version control tool
git is the most advaced version control system
i learn git now
i think git is better than SVN
creat new branch and merge to master
合并后,再查看readme.txt的内容,就可以看到,和 dev
分支的最新提交是完全一样的。
git switch
注意到:我们切换分支的时候是使用 : git checkout
命令,但是我们在撤销修改的时候也是用的这个命令,所以Git为了区分,新引出了一个 git switch
命令英语切换分支,效果和 git checkout
是一样的:
切换分支:
$ git switch dev
Switched to branch 'dev'
创建并切换到该分支:
$ git switch -c feaature
git Switched to a new branch 'feature'
注意:新版本的才有git switch 命令,我的旧版本不存在这个命令,
所以我是在windows上较新的版本操作的,其实没有关系,只要
知道有 git switch 这回事就行,不能用就用 git checkout ,效果完全一样。
小结:
今天一共就学习了以下几个内容:
1)创建分支:git branch <name>
;
2)切换分支:git checkout <name>
或者是git switch <name>
(旧版本没有);
3)创建并切换到该分支: git checkout -b <name>
或者是 git switch -c <name>
(旧版本没有);
4)删除分支:git branch -d <name>
;
5)合并分支:git merge <name>
;
参考:
【1】廖雪峰:Git教程