[英]Gerrit - Current branch and remote branch have diverged
首先,我将对GERRIT的承诺进行审查
其次,我的队友验证了我的承诺并提交回购协议
第三,我与命令git fetch同步,当我检查状态时发现我当前的分支和远程分支已经分开
我想知道这是怎么发生的以及如何避免它,有人可以帮我吗
我跑过的所有命令
git add app/Http/Controllers/StatisController.php
git commit
git push origin HEAD:refs/for/<remote_branch>
提交后
git fetch
git status
我收到以下消息:
在分支客户端上,您的分支和'origin / remote_branch'已经分开,分别具有1和1个不同的提交。
(使用“ git pull”将远程分支合并到您的分支中)
有了我们掌握的信息,这是不可能的,但是很可能您的提交已由Gerrit自动合并或自动重新设置基准。 根据每个项目中配置的提交策略,更改将自动合并/自动重新设置。 要了解项目正在使用哪种提交策略,请执行以下操作:
在将提交合并到远程分支(在Gerrit中提交)之后,忘记本地分支(删除它们),并始终启动一个新分支以进行新更改。
致力于变革1
git fetch
git checkout -b LOCAL-1 /origin/REMOTE
# Work on the change
git add .
git commit
git push origin HEAD:refs/for/REMOTE
如果您想进行变更2:
git fetch
git checkout -b LOCAL-2 /origin/REMOTE
# Work on the change
git add .
git commit
git push origin HEAD:refs/for/REMOTE
如果您需要重做更改:
git checkout LOCAL-1
# Rework the change
git add .
git commit --amend
git push origin HEAD:refs/for/REMOTE
当变更1在Gerrit上合并(提交)时:
git branch -D LOCAL-1
在简历中:您的本地分支机构不应跟随远程分支机构。
如果您的分支分歧,则有两个选择。
将远程分支合并到本地分支。 这是git pull
的默认行为,但这将导致创建合并提交,并使分支的历史变得混乱。
将本地分支重新建立到远程分支( git rebase origin/the-branch
)。 这是我的首选,因为它创建了一个清晰易读的提交历史记录。
同步当前分支的命令是git pull
。 git pull
等效于git fetch
+ git merge
。 您已经运行过git fetch
,因此您可以手动调用git merge
(假设当前分支为master
):
git merge origin/master
或者,您可以强制移动分支:
git reset --hard origin/master
或者,您可以运行pull
:
git pull origin master
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.