git对分支的操作

大家好,我是OnlyCoding

自上次那篇文章介绍了git上传原理之后,这篇文章说一下git分支和冲突问题

一般我们在开发过程中,会有一个稳定的版本,一个开发版本,现在开发版本上进行开发

6846825a0472fd8621501305f9db10d3.png

我们先来看一下现在的版本情况

49ec88cb7451f71492bba10f6fbc0d2b.png

现在是只有一个main版本

第一种建立分支方式

git branch dev
git branch 查看分支

fdda7755ad9efb52795bf5130fea04b5.png

git checkout dev # 转移到dev分支

c169f732dedb72edd376191c8951010d.png

另一种创建分支方式

# 先把dev删掉,
git checkout maingit branch -d dev
# 建立分支并同时移动到分支上
git checkout -b dec
git branch

8db64b6358d8bcb5fe107955e9541182.png

补充:

之前说的提交文件时候,先git add 文件名

这里直接使用这个命令

git commit -am "提交描述"

使用这个命令的前提是文件已经在git管理仓库文件中了

现在dev和main两个分支是互相看不见的,如果dev开发版本已经开发完了,现在需要推到main版本上

先把指针移到main版本上

git merge --no-ff -m "描述" dev

下面用一组图再来解释一下

建立新的分支dev,master和dev指向同一个commit对象。

cc68ce903c6d217f406ddb67eb27419c.png

在dev分支下新建1.txt文件,并且提交

9681e0ae11a8fd910e97900122f0463a.png

在main分支下新建2.txt,并且提交

998590ad139fcbcccca967789a65740c.png

在main分支下,合并dev分支

b388d0790e3e1a93996b9b792c42ce1a.png

在dev分支下合并mainr分支

6a8132cb8c7ae88e9e93fdf04c337f98.png

dev分支下新建3.txt,并且提交

ff50ac2bc7b64a5bc73ad8bd43687fee.png

main分支下合并dev

c3e7daf60ada24f26aece383cde86dca.png

查看提交记录git log --graph

也可通过

git log --oneline --graph 查看

7067e3c30e3f6a37f29970aaa0511248.png

分支合并原理

a.

85a65efe812a64f497ab4f442e173aea.png

如果main分支所在的提交对象要并入dev分支的直接上游,git只需要把main分支指针直接后移。

b.

6c5d57106cbe426717f591e09beb863e.png

如果当前main分支指向的提交对象version04不是dev分支的直接祖先,就不能直接向上面那样操作。

git会用两个分支的末端(leng02和version04)以及他们的共同祖先(version03)进行合并计算。

对三个版本合并后的结果重新做一个新的快照(version05)

d259cc49ca18a292f33f5f818fee4afa.png

整理了一些命令:

对分支操作的一些命令:

新建分支: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


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值