支管理指的是开发时,创建多个分支,然后在不同的分支进行开发管理,互不影响;
等到分支开发完成,再合并到主分支;
如果没有分支,那么代码还没写完就提交,会导致别人拿到的代码是不完整的;但是如果不提交,那么代码就有丢失的风险;
所以分支的好处很明显,就是代码的安全性得以提高,各个开发人员之间的代码互不干扰。
- 创建分支
- 切换分支
- 提交分支
- 合并分支
- 删除分支
- 快捷方式
1. 创建分支
创建分支的命令:git branch <branch name>
查看分支的命令:git branch
;master前面有个*
号,表示当前在master分支
PS D:\branch-demo> git branch dev
PS D:\branch-demo> git branch
dev
* master
分支的示意图如下所示:可以看到,当前的Head指向的是master分支,dev和master指向同一个节点
2. 切换分支
接下来,我们切换到dev分支
切换分支命令: git switch dev
PS D:\branch-demo> git switch dev
Switched to branch 'dev'
切换分支后 的示意图如下所示:可以看到,当前的Head指向了dev分支3. 提交分支
接下来,我们可以在dev上进行改动,然后再将改动提交到dev分支
操作步骤如下:我们先创建一个demo.txt文件,然后提交
PS D:\branch-demo> git add .\demo.txt
PS D:\branch-demo> git commit -m "demo.txt"
[dev bd68189] demo.txt
1 file changed, 1 insertion(+)
create mode 100644 demo.txt
提交之后我们用git log命令查看提交记录,如下所示:可以看到最新的提交是在dev上,master指向的是旧的代码
PS D:\branch-demo> git log
commit bd681899740d30ee0c793843e4b175d596b3430b (HEAD -> dev)
Author: jalon2015 <1121263265@qq.com>
Date: Wed Nov 10 18:02:41 2021 +0800
demo.txt
commit 2c053a9d5df9fcb08c29a918f7992d5b763392fc (master)
Author: jalon2015 <1121263265@qq.com>
Date: Wed Nov 10 17:45:41 2021 +0800
first commit
提交之后的示意图如下所示:此时dev往前移动了一步,但是master还在原地
PS D:\branch-demo> git log
commit bd681899740d30ee0c793843e4b175d596b3430b (HEAD -> dev)
Author: jalon2015 <1121263265@qq.com>
Date: Wed Nov 10 18:02:41 2021 +0800
demo.txt
commit 2c053a9d5df9fcb08c29a918f7992d5b763392fc (master)
Author: jalon2015 <1121263265@qq.com>
Date: Wed Nov 10 17:45:41 2021 +0800
first commit
提交之后的示意图如下所示:此时dev往前移动了一步,但是master还在原地
此时我们用IDEA的git窗口,也能看到类似的示意图,如下所示:
4. 合并分支
提交之后我们就可以将dev合并到master主分支,合并之前需要先切换到master分支,再合并dev
切换分支的命令上面有提到:git switch master
合并的命令为: git merge dev;这里的意思就是将dev合并到master分支
PS D:\branch-demo> git checkout master
Switched to branch 'master'
PS D:\branch-demo> git merge dev
Updating 2c053a9..bd68189
Fast-forward
demo.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 demo.txt
此时运行git log,可以看到Head同时指向了master, dev:
PS D:\branch-demo> git log
commit bd681899740d30ee0c793843e4b175d596b3430b (HEAD -> master, dev)
Author: jalon2015 <1121263265@qq.com>
Date: Wed Nov 10 18:02:41 2021 +0800
demo.txt
commit 2c053a9d5df9fcb08c29a918f7992d5b763392fc
Author: jalon2015 <1121263265@qq.com>
Date: Wed Nov 10 17:45:41 2021 +0800
first commit
分支合并后的示意图如下所示:
合并分支,如果有冲突,需先解决冲突,然后再合并;