关于git:git分支管理

48次阅读

共计 2386 个字符,预计需要花费 6 分钟才能阅读完成。

备注:

本文转载参考于廖雪峰老师的博客 Git 教程。按照其博客进行学习和记录,感激其自私分享,也欢送各位查看原文。

知识点

  • 分支能够并行的治理版本,协同单干编写代码,在分支上实现工作,而后合并分支。
  • 查看分支和以后分支:git branch
  • 创立分支git branch <name>
  • 切换分支git checkout <name>
  • 创立并切换分支git checkout -b <name>
  • 合并指定分支到以后分支,git merge <name>
  • 删除分支git branch -d <name>

分支治理

分支相似于平行的多个干线。

分支的作用:比方多人合作开发中,你开发的性能须要两周实现,第一周还没写完,如果提交,因为代码不残缺,提交可能会导致他人不能干活,然而如果等代码全副写完再提交,又有失落的危险。

借助分支,你能够创立一个属于本人的分支,多集体各自在本人的分支上失常工作,互不影响,等到开发实现后,在一次性合并到原来的分支上,保障了平安、高效、协同、互补影响。

Git 分支的创立、切换、删除十分快,和文件多少无关。

创立与合并分支

版本回退中,Git 的版本治理是将每次提交串成一条工夫呈现,这条工夫线就是一个分支。

目前创立的 Git 仓库只有一个分支——主分支,即 master 分支,

HEAD 严格来说不是指向提交,而是指向 master,master 才是指向提交的,所以,HEAD 指向的就是以后分支。

开始,master 分支是一条线,Git 用 master 指向最新的提交,再用 HEAD 指向master,就能确定以后分支和以后分支的提交点。

每次提交,master分支都会向前挪动一步,随着一直的提交,master 分支的线也越来越长。

当咱们创立新的分支,比方 dev 分支,Git 新建一个指针叫 dev,指向master 雷同的提交,再把 HEAD 指向 dev,就示意以后分支在dev 上。

Git 创立分支很快,因为 Git 只减少一个 dev 指针,同时批改 HEAD 的指向,工作区的文件都没有任何变动。

当初对工作区的批改和提交就针对 dev 分支,比方新提交之后,dev指针往前挪动,而 master 指针不变

当咱们在 dev 上的工作实现了,就能够把 dev 合并到 master 上。

Git 的合并很简略,就是间接把 master 指向 dev 的以后提交,这就实现了合并。

Git 合并分支也很快,仅仅是改改指针,工作区内容不变。

合并完分之后,如果删除 dev 分支只有把 dev 指针删除就能够

只剩下一条 master 分支

创立分支。

  • 创立 dev 分支,并切换到 dev 分支
$ git checkout -b dev
切换到一个新分支 'dev'

git checkout -b xx示意创立分支并切换。

  • 分步骤创立并切换分支dev2。如下
$ git branch dev2
$ git checkout dev2
切换到分支 'dev2'
  • git branch查看以后分支
$ git branch
  dev
* dev2
  master

git branch列出所有分支,以后分支后面有一个 * 号。

  • 当初能够在 dev2 分支上失常提交。如批改 readme.txt 文件。而后查看 Git 状态
$ git status
位于分支 dev2
尚未暂存以备提交的变更:(应用 "git add < 文件 >..." 更新要提交的内容)(应用 "git checkout -- < 文件 >..." 抛弃工作区的改变)批改:readme.txt

批改尚未退出提交(应用 "git add" 和 / 或 "git commit -a")

提醒以后分支位于 dev2 上,并且工作区 readme.txt 批改

  • 分支提交
$ git add readme.txt
$ git commit -m"modify readme.txt at branch"
[dev2 03d07d2] modify readme.txt at branch
 1 file changed, 1 insertion(+)

如上,在以后分支 dev2 上实现了提交。

  • dev2 分支上提交完,切回 master 分支:
$ git checkout master
切换到分支 'master'
您的分支与上游分支 'origin/master' 统一。liu@liu-virtual-machine:~/gitTest$ cat readme.txt

`this is a test that I learn and use git version control system
this is a beginning
wofaidognyixie dognxi

查看能够看到,readme.txt文件放弃和批改前的统一。

  • 切换到 dev2 分支,能够看到 dev2 分支上内容为之前最新批改内容
$ git checkout dev2
切换到分支 'dev2'
$ cat readme.txt

`this is a test that I learn and use git version control system
this is a beginning
wofaidognyixie dognxi
create two new branch

合并分支

  • dev2 分支内容合并到 master 分支(以后分支为master
$ git merge dev2
更新 036ced2..03d07d2
Fast-forward
 readme.txt | 1 +
 1 file changed, 1 insertion(+)

此时查看 readme.txt 内容,曾经和 dev2 一样

git merge命令用于合并指定分支到以后分支。

留神,下面合并时提醒 Fast-forward,Git 批示本次合并是“快进模式”,即把master 指向 dev2 的以后提交,所以速度很快。

删除分支

  • 删除 dev2 分支,合并实现后就能够释怀的删除 dev2 分支了。
$ git branch -d dev2
已删除分支 dev2(曾为 03d07d2)。$ git branch
  dev
* master

删除后,查看 branchdev2 分支曾经没有了。

Git 创立、合并和删除分支都十分快,所以 Git 激励应用分支实现某个工作,合并后再删除分支,效率高并且平安。

正文完
 0