当历史被更改时,如何拉出git分支?

  • 本文关键字:何拉出 git 分支 历史 git
  • 更新时间 :
  • 英文 :


我在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上没有任何未提交的更改

最新更新