大家好,我是OnlyCoding
自上次那篇文章介绍了git上传原理之后,这篇文章说一下git分支和冲突问题
一般我们在开发过程中,会有一个稳定的版本,一个开发版本,现在开发版本上进行开发
我们先来看一下现在的版本情况
现在是只有一个main版本
第一种建立分支方式
git branch dev
git branch 查看分支
git checkout dev # 转移到dev分支
另一种创建分支方式
# 先把dev删掉,
git checkout maingit branch -d dev
# 建立分支并同时移动到分支上
git checkout -b dec
git branch
补充:
之前说的提交文件时候,先git add 文件名
这里直接使用这个命令
git commit -am "提交描述"
使用这个命令的前提是文件已经在git管理仓库文件中了
现在dev和main两个分支是互相看不见的,如果dev开发版本已经开发完了,现在需要推到main版本上
先把指针移到main版本上
git merge --no-ff -m "描述" dev
下面用一组图再来解释一下
建立新的分支dev,master和dev指向同一个commit对象。
在dev分支下新建1.txt文件,并且提交
在main分支下新建2.txt,并且提交
在main分支下,合并dev分支
在dev分支下合并mainr分支
dev分支下新建3.txt,并且提交
main分支下合并dev
查看提交记录git log --graph
也可通过
git log --oneline --graph 查看
分支合并原理
a.
如果main分支所在的提交对象要并入dev分支的直接上游,git只需要把main分支指针直接后移。
b.
如果当前main分支指向的提交对象version04不是dev分支的直接祖先,就不能直接向上面那样操作。
git会用两个分支的末端(leng02和version04)以及他们的共同祖先(version03)进行合并计算。
对三个版本合并后的结果重新做一个新的快照(version05)
整理了一些命令:
对分支操作的一些命令:
新建分支:git branch 分支名
切换分支:git checkout 分支名
推送分支:git push origin 分支名
把远程服务器上所有的更新都拉取下来:git fetch
查看远程分支:git branch -a
查看本地分支:git branch
拉取远端分支代码:git pull origin 分支名
添加目录等:git add .
提交代码:git commit -m "备注"
推送提交的代码:git push origin 分支名
清理本地无效分支(远程已删除本地没删除的分支): git fetch -p