Git ahead(超前) 又behind(落后)
Git ahead(超前) 又behind(落后)
在 Git 项目中,多人共用同一分支开发,执行命令git branch -vv
查看分支状态,会发现分支经常是类似于ahead 2, behind 1的状态。
1、解释
截图如下:
以 prod 分支为例,ahead 2 意味着 prod 本地分支有两次 commit 还没推送到远程分支,behind 1 表示远程分支的一次 commit 没有合并到 prod 本地分支。故此 prod 分支会变成超前又落后的状态。
2、执行命令
假设现在 prod 本地分支为 1-2,远程分支为1-3。那么现在需要做的事情是拉取远程分支代码,与本地进行合并再推送到远程分支。
执行命令如下:
# 合并远程分支代码
git merge
# 如果有冲突则解决,然后commit,没有则忽略此步骤
git commit -am "解决冲突"
# 推送远程仓库
git push
此时prod 本地分支变为 1-2-3',3'与3内容相同,但hash值不同。
至此,分支状态便正常了。
自我控制是最强者的本能-萧伯纳