我正在处理一个项目并使用Git进行版本控制。我在我的develop
分支上的计算机A上做了一些工作并将其推送到我的远程存储库,该存储库被设置为远程分支origin/develop
。然后我在计算机B上的develop
分支上做了很多工作,但忘记了从计算机A提取最后一次提交。当我最终从计算机B上的develop
分支获取最新信息时图表像这样分开。
* Computer B Commit 3 [develop]
|
* Computer B Commit 2
|
* Computer B Commit 1
|
| * Computer A Commit [remotes/origin/develop]
| /
*
此时我并不关心我在计算机A上所做的工作。我已经在计算机B的提交中完成了这项工作。但是如果我尝试运行{{1 git将尝试让我合并两个分支。我不想合并任何东西。我真的只想让git push origin
指向最新的本地remotes/origin/develop
分支develop
。
我是唯一一个从事这个项目的人,所以没有人有机会从计算机A中提取最后一次提交。听起来我可以通过使用Computer B Commit 3
强制推送但是,我现在正在阅读的一些文章说,如果其他人已经拉过来,这将是不好的。
解决这个问题的正确方法是什么?
答案 0 :(得分:0)
由于您是该项目中唯一的一个,从计算机B:
git push -f origin develop
这将覆盖计算机A的所有历史记录
这取决于您对计算机A提交的关注程度。我实际上尝试在计算机B上运行git pull --rebase origin develop
,它会尝试将您的更改自动合并到B上的提交中您从A远程提交,如果有冲突,您可以解决它们,然后git rebase --continue
。