如何进行本地分支管理
分支是分步添加功能的方式,在不影响主线的同时继续工作,在分支完成后合并到主线,使得主线时刻处在可运行的模式。
#Git进行分支管理
显示分支一览表
git branch
显示分支
可以看出现在我们只有一个主分支(master)
创建分支
git branch 分支名称1
在当前分支下创建分支
当前分支为master,在master下输入git branch A
,即在master分支下创建分支。
转到新创建的分支
git checkout 分支名称
转到该分支。
可以看到 当前分支从master
分支转到了A
分支。
注意: 当你使用git checkout A
时,A
分支内的内容会替代你的工作目录的内容(因为A
分支从master
中分支出,但还未作任何更改,因此在工作目录中并无变化)
创建分支并转到新创建的分支
一步解决前面两步的方式
git checkout -b B
新建B
分支并转到B
分支。
提示:对A
分支做更改不影响B
分支和master
分支的内容。
分支合并
当我们对B
分支做了修改(在B
分支的readme.md
文件中添加 “这是B分支” ),想将B
分支合并到A
分支上时。
-
将分支切换到被合并的分支(这里为A
,git checkout A
)
切换回A
分支后,打开工作目录readme.md
文件,发现 “这是B分支” 不在其中,说明A
,B
分支是完全独立的两个文件。
-
使用$ git merge B
,将B
分支合并到A
分支。
再打开工作目录中的readme.md
文件,发现在文件中再次出现 “这是B分支” 的文字。说明分支合并成功。
注意点:
- 如若没有提交修改了的工作目录中的内容,直接改变当前分支,Git会提醒
M
,表示工作区中的内容未提交。
需要 git add -A
,git commit -m "提交信息"
完成提交。
删除分支
git branch -d (branchname)
删除branchname分支
现在我们有如下三个分支
使用删除分支命令删除B
分支。
再次查看分支
发现B
分支被成功删除。
冲突合并
若我们将A
分支中readme
文件改为如下(记得提交)
将master
分支中readme
文件改为如下(记得提交)
现在我们有如下状态
如若现在将A
分支合并到master
分支,使用git merge A
,则出现如下提示
这时打开冲突文件,会发现变为如下格式
将冲突文件修改为如下内容
再提交到master分支。
可以看到提交后,由master|MERGING
分支变为master
分支,说明合并成功
注意:若出现如下提示,说明你在工作区的内容还未提交,请先提交再合并!
最后删除A分支
git branch -d A
.
#Tortoise进行分支管理
显示分支
版本分支图(G)
可显示版本更新进程。
创建分支
创建分支(B)...
点击后如下
创建C
分支,并切换到C
分支。
切换分支
切换/检出(W)
打开后如下:
可选择切换到的分支
分支合并
修改C
分支中readme
文件为如下并提交。
切换到master
分支,然后合并(M)
,打开如下:
选择合并的分支,点击确定。
删除分支。
冲突合并
同样,创建D
分支,对D
分支做修改,在对master
分支做修改,使两个分支产生冲突。
在master分支下合并(M)
选择D
分支合并。
弹出如下提示框。
打开冲突文件
修改冲突位置,提交到master
分支。弹出下图:让你不要取消任何提交文件。
直接提交弹出下图,让你修改日志信息,来确保你修改了冲突。
放弃提交后修改日志信息,再提交。
提交成功
#VS2019进行分支管理
显示分支
创建分支
Git -》 新建本地分支位置(N)
。
切换分支
在管理分支(M)
中双击或在选定分支上点击enter
切换分支。
分支合并
在需要被合并的分支上右键,选择将“D”合并到“master”(M)
冲突合并
若出现合并冲突,上方出现提示
点击解决冲突
在未合并的更改中点击main.cpp
,打开下方窗口
或直接打开冲突文件修改。
最后点击上方接收合并
。
再进行提交
最后删除D
分支
补充
VS2019提交到GitHub中文乱码问题
因为网页的编码一般为 utf8 而VS2019中的编码为 中文(GB2312)。
如何修改VS2019编码
参考资料
廖雪峰的官方网站
Git 菜鸟教程