如果同事在推送后变基了,我该怎么办?
What do I do if a colleague has rebased after pushing?
我已经检查过 somebranch
。一位同事做了一些工作并对其进行了重新设置,现在 origin/somebranch
与 somebranch
平行。我没有在分支上做任何工作,但我落后 14 次提交,提前 3 次提交并且两个文件存在合并冲突。我现在该怎么做才能不添加垃圾合并?
奖金问题:如果我在预覆盖分支上做了一些本地工作,我该怎么办?
编辑:
澄清我所做的事情。我做到了
git fetch
git checkout somebranch
一段时间后,我点击了 vscode 中的同步按钮,据我所知,它确实尝试了
git pull origin somebranch
git push origin somebranch
操作失败,已对两个文件启动合并。
历史现在看起来像(更长的版本):
* 8e1e0ed - (2 days ago) commit9 (origin/somebranch)
* c87977f - (9 days ago) commit8
* adfc49e - (3 weeks ago) commit2
* 7c8e72e - (3 weeks ago) commit1
* e158c80 - (8 days ago) commit7 (origin/master, master)
* 2357f78 - (8 days ago) commit6
| * 7b507a3 - (9 days ago) commit5 (HEAD -> somebranch)
| * 2a7af7b - (3 weeks ago) commit2
| * c424261 - (3 weeks ago) commit1
|/
* 48098a0 - (3 weeks ago) commit0
即commit1
和 commit2
在我的 branch 和 origin 版本上是不同的。并且 commit5
被其他提交替换。我现在该怎么办?
保持提交 5
提交 1 和 2 已经存在,因此唯一要变基的提交是提交 5,而 HEAD 位于提交 5 的分支的末尾,因此不需要指定。
git rebase --onto origin/somebranch HEAD~
将使用提交 9 的父项创建新的提交 5。
不保留提交 5
如果您不想在您的分支上进行任何提交,那是一种更简单的情况。只是将本地分支重置为远程分支的情况。
git reset --hard origin/somebranch
我已经检查过 somebranch
。一位同事做了一些工作并对其进行了重新设置,现在 origin/somebranch
与 somebranch
平行。我没有在分支上做任何工作,但我落后 14 次提交,提前 3 次提交并且两个文件存在合并冲突。我现在该怎么做才能不添加垃圾合并?
奖金问题:如果我在预覆盖分支上做了一些本地工作,我该怎么办?
编辑:
澄清我所做的事情。我做到了
git fetch
git checkout somebranch
一段时间后,我点击了 vscode 中的同步按钮,据我所知,它确实尝试了
git pull origin somebranch
git push origin somebranch
操作失败,已对两个文件启动合并。
历史现在看起来像(更长的版本):
* 8e1e0ed - (2 days ago) commit9 (origin/somebranch)
* c87977f - (9 days ago) commit8
* adfc49e - (3 weeks ago) commit2
* 7c8e72e - (3 weeks ago) commit1
* e158c80 - (8 days ago) commit7 (origin/master, master)
* 2357f78 - (8 days ago) commit6
| * 7b507a3 - (9 days ago) commit5 (HEAD -> somebranch)
| * 2a7af7b - (3 weeks ago) commit2
| * c424261 - (3 weeks ago) commit1
|/
* 48098a0 - (3 weeks ago) commit0
即commit1
和 commit2
在我的 branch 和 origin 版本上是不同的。并且 commit5
被其他提交替换。我现在该怎么办?
保持提交 5
提交 1 和 2 已经存在,因此唯一要变基的提交是提交 5,而 HEAD 位于提交 5 的分支的末尾,因此不需要指定。
git rebase --onto origin/somebranch HEAD~
将使用提交 9 的父项创建新的提交 5。
不保留提交 5
如果您不想在您的分支上进行任何提交,那是一种更简单的情况。只是将本地分支重置为远程分支的情况。
git reset --hard origin/somebranch