一.创建与合并分支:
1.分支概念:
每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。
我们经常用的分支称为主分支:master
HEAD
其实就是指向master
,master
才是指向提交的,所以,HEAD
指向的就是当前分支。

2.创建分支:
(方式1).git checkout -b huan
创建一个huan的分支并且切换到该分支。
(方式2.)git branch huan
创建分支。git checkout huan
切换到该分支



3.查看当前分支
用git branch
命令查看当前分支

注:列出所有分支,在当前分支前用*标记
4.合并当指定支到主分支
git merge huan


5.删除指定分支
git branch -d huan

二.解决冲突
1.创建新的分支 并且修改222.txt文件内容:
我在mahuan fenzhi提交的
修改后进行git add .
git commit -m"在mahuan分支提交"


2.切换回主分支,然后再修改222.txt文件内容:
我是在master分支创建的
修改后进行git add .
git commit -m"我是在master上面提交的"


3.尝试合并mahuan分支到master分支上
git merge mahuan
(失败有冲突)

4.查看文件
cat 222.txt
并进行修改文件vi 222.txt
修改后进行git add .
git commit -m"修改冲突之后"


5.可以看到分支合并图。
1.git log --graph --pretty=oneline --abbrev-commit

2.
git log --graph

三分支管理策略:
通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
如果要强制禁用Fast forward模式(--no-ff
),Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
.
1.首先创建新的分支:
git checkout -b mahuan
修改新的分支内容提交后
2.然后在返回到master分支 禁用Fast forward模式合并mahuan分支git merge --no-ff -m"小李合并分支" mahuan
3.最后查看日志:git log --graph --pretty=oneline --abbrev-commit

注:合并分支时,加上
--no-ff
参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward
合并就看不出来曾经做过合并。
在实际开发中,我们应该按照几个基本原则进行分支管理:
1.首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
2.那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
3.你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。

.
上文接:Git进阶学习常用命令--学习笔记
网友评论