什么是分支?

分支简单来说就是不同的开发线路,每一个分支也就意味着每一条开发线路!

分支类别

- 按照空间划分

  • 本地分支:本地仓库的分支

  • 远程分支:远程仓库的分支

- 按照关系划分

  • 跟踪分支:跟踪分支是从远程跟踪分支上生成的本地分支(比如使用命令“git clone 仓库地址 分支名称”会在本地仓库生成一个和远程仓库分支名相同的分支,这个分支就是跟踪分支)

  • 远程跟踪分支:远程跟踪分支是在本地的只读的记录远程分支状态的分支,其指向用户无法移动,当使用git fetch等指令时其指向会依照远程仓库自动移动(这个概念笔者还不是很清楚)

分支命令

1.创建、切换分支

  • 创建一个名叫“develop”的分支

    • git branch develop

  • 切换当前分支到“develop”分支

    • git checkout develop

  • 创建一个名叫“feature-bug”的分支,并同时切换到该分支

    • git checkout -b feature-bug

2.删除分支

(注:确保需要删除的分支不是当前选择分支)

  • 普通删除分支“feature-bug”

    • 1.切换到Master分支 git checkout master

    • 2.删除分支 git branch -d feature-bug

  • 强制删除分支“feature-bug”

    • 1.切换到Master分支 git checkout master

    • 2.删除分支 git branch -D feature-bug

3.合并分支

  • 合并develop分支到master分支

    • 1.切换到master分支上git checkout master

    • 2.合并 git merge develop

Git默认合并的时候采用的是'Fast Forward'模式,但这种模式下,删除分支后,会丢掉分支信息。如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。使用选项--no-ff来禁用'Fast Forward'模式

举例说明:

  • 不使用Fast Forward模式合并develp分支到master分支

    • 1.切换到master分支git checkout master

    • 2.合并git merge --no-ff -m "commit message" develop


友情链接

廖雪峰博客