首先,我将我的提交推送到GERRIT进行审核
其次,我的队友验证了我的提交并提交回购
第三,我与命令git fetch同步,当我检查状态时,我发现我当前的分支和远程分支已经分歧
我想知道它是如何发生的以及如何避免它,有人可以帮助我
我运行的所有命令
executeCargoCommandInTerminal
git add app/Http/Controllers/StatisController.php
git commit
提交提交后
git push origin HEAD:refs/for/<remote_branch>
git fetch
我得到的信息如下:
在分支机构客户端上 您的分支机构和&quot; origin / remote_branch&#39;有分歧,分别有1和1个不同的提交。
(使用&#34; git pull&#34;将远程分支合并到你的分支中)
答案 0 :(得分:1)
根据我们知道的信息,我们无法知道,但是,您的提交可能是由Gerrit自动修改或自动修复的。根据每个项目中配置的submit strategy,更改是自动充电/自动重排的。要了解项目使用的提交策略,请执行以下操作:
在提交在远程分支中合并(在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
如果您需要重做更改1:
git checkout LOCAL-1
# Rework the change
git add .
git commit --amend
git push origin HEAD:refs/for/REMOTE
在Gerrit上合并(提交)更改1时
git branch -D LOCAL-1
简历中:您的本地分支机构不应该跟随远程分支机构。
答案 1 :(得分:1)
如果你的分支有分歧,你有两个选择。
将远程分支合并到本地分支。这是git pull
的默认行为,但这会导致创建合并提交并使分支的历史记录混乱。
将您的本地分支重新定位到远程分支(git rebase origin/the-branch
)。这是我的首选选项,因为它创建了一个简洁易读的提交历史记录。
答案 2 :(得分:0)
同步当前分支的命令是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