我在master上创建了一个分支,并应用了几个提交。在我完成了所有的修改之后,我重新整理并压缩了所有这些没有意义的小提交(例如修复错字等)。由于重新调整,我不得不用力推树枝。到目前为止,一切正常。
现在,当我去另一台机器,我有相同的存储库,我想拉最新的版本,但这总是给我错误,我最终克隆存储库再次。
Machine1 Machine2
| |
master N master N
| |
+ Branch1 + Branch1
| |
Commit1 |
| |
Commit2 |
| |
Commit3 |
| |
Rebase |
| |
Force Push |
Pull error
是否有一些方法可以在另一台机器上正确地更新这个,而不必再次重置或克隆?
如果第二台机器上的分支是"相同的";并且你没有任何未提交的更改,你可以很容易地将本地分支硬重置为拉出的分支-之后它将完全相同:打开日志,确保你在正确的分支上,选择远程跟踪分支(你可能必须启用"显示所有分支";在左下方),打开上下文菜单并执行硬复位。
- 如果您有未提交的更改,请先执行。
- 如果你有尚未推送的提交,这些提交也可能会丢失。所以要照顾他们,例如,通过push/rebase它们或创建一个新的分支,以便您可以稍后拾取或合并它们。
通常只是:
git pull --rebase
。
如果它导致一些问题,并且您真的想使Machine2
完全匹配远程和Machine1
,您可以使用:
git reset --hard origin/Branch1
确保你在Machine2
上没有任何未提交的更改