代码之家  ›  专栏  ›  技术社区  ›  Igor

对远程GitHub仓库的思考

  •  0
  • Igor  · 技术社区  · 4 年前

    所有,

    不幸的是,我不得不表演 git reset --hard 在本地存储库中回滚到所需的修订版。这意味着旧HEAD和我重置的修订版之间的所有提交都将消失。

    现在,如果我这样做 git push --force 远程GitHub存储库也会发生同样的情况吗?如何在另一台机器上保留相同的删除?

    基本上,我希望远程GitHub存储库看起来与本地存储库完全相同——删除其间的所有提交,并且该存储库所在的所有其他机器也删除这些提交。

    或者我不应该这样做 git reset 需要另一个命令吗?

    蒂亚!

    附言:作为代码的唯一开发人员,我不关心其他人。所以,

    git push --force
    git pull (on another machine)
    

    删除远程和另一台机器上的提交是正确的吗?

    0 回复  |  直到 4 年前
        1
  •  0
  •   x squared    4 年前

    是的,如果你这样做的话 git push --force 远程将看起来像您的本地存储库。然而,作为最佳实践,你应该这样做:

    git push --force-with-lease
    git pull --rebase
    

    --force-with-lease 是一种安全措施,可以防止您在远程分支比您的分支新的情况下推送。想象一下,在你拉取之后,在你重置git的时候,一个新的提交被推送到了存储库。这将被覆盖 --force 但不是与 --强制租赁 .

    即使你独自在你的存储库上工作,你也可能在另一台机器上推送,并在你进行强制推送时忘记了它。

    git pull --rebase 应该是默认的拉动方式。对历史的任何更改都将被正确应用。如果您有本地提交,它们将堆叠在历史记录之上。