有趣且重要的Git知识合集(5)Merge branch ‘master‘ of

1、打印输出git分支图

git log --graph --all --decorate --oneline
--graph意思是以图形的模式显示分支,
--all意思是显示所有的commit记录,
--decorate参数用来显示一些相关的信息,如HEAD、分支名、tag名等,
--oneline就是一个commit只显示一行

2、Merge branch 'master' of

我们某些时候会见到 Merge branch 'master' of into... 的日志,如下图,会多一个绿色的箭头指向,那这是如何造成的呢?为啥会出现这种呢?

答:我们在同一个分支上进行多人协同开发时,本地分支的代码落后于远程分支是很常见的事,如果你按照正常流程,先 git pull,有冲突解决冲突,然后git add/commit/push,那么你的git操作没有问题,非常完美,git分支图也是正常显示。但是你如果先 git commit,再 git pull的话,就会产生 Merge branch 'master' of 这种多余日志,虽然不会影响啥,但是分支图多一处无用的日志就很不好, 而且 先git add再git pull也非正常流程。

2.1、那么有同学想问,我对git不太熟悉,又和同事在同一个分支上开发,那我该如何操作呢?

首先你和同事修改有同样代码,然后他讲代码提交到远程了,你需要拉取他的代码,但是因为你本地有正在开发的代码,无法git pull,那切记一定不要先git commit! 要先 git stash , 将你本地开发代码提交到本地暂存区(可以跨分支哦,这方式很好用),然后git pull,拉下别人的代码后,再 git stash pop,将你代码从暂存区退出到本地开发目录,然后就是解决冲突,接着 再是git add/commit/push啦

2.2、git pull 原理是啥?

我们在git pull代码时,实际上git 默认会帮我们做合并操作: fast-forward 模式, 意思是如果 远程 分支超前于本地分支,并且本地分支没有任何 commit 的,直接从 远程 进行 pull 操作,这种模式下,不会产生合并节点,也就是说不会产生多余的日志信息(Merge branch 'master' of ...)。
如果像之前那样,本地先 commit 后再去 pull,那么远程分支和本地分支会出现分叉,这个时候使用 pull 操作拉取时,就会进行分支合并,产生合并节点日志信息

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值