gpt4 book ai didi

Git:删除原始和上游仓库中的提交

转载 作者:太空狗 更新时间:2023-10-29 13:44:39 24 4
gpt4 key购买 nike

我的 fork 是 origin 而我 fork 的是 upstream

我必须从我的 fork 中删除一个提交,但我想更新 upstream 存储库以防其他人需要 fork 它(目前只有我)。

到目前为止,我已经完成了以下工作:

git checkout MYBRANCH
git reset --hard <SHA_COMMIT_HASH>
git push origin MYBRANCH

截至目前,我的 upstream 存储库受到保护(它会在某个时候),所以我尝试推送到该存储库,但我收到以下消息。我试着强制它,但它也没有用。我仔细检查了一下,分支没有受到保护。

hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

最佳答案

您已经重置了提交。您可以继续使用 2 种方法

  1. Force with lease Push - git push origin --force-with-lease MYBRANCH。这将覆盖提交并将其从远程删除,但如果远程仓库自上次 pull 后已更新,则会被拒绝。这在您的情况下(您的分支机构,只有您 promise repo )在技术上不是必需的,但这是一个很好的习惯。
  2. 从 MYBRANCH 创建一个新分支。推送到远程并将其 merge 到上游的 MYBRANCH。

在删除提交时,我通常遵循下面提到的规则

删除提交可以通过两种方式完成

  1. git reset - 破坏提交使你的远程分支和本地分支不同步
  2. git revert - 创建一个可以轻松推送到远程存储库的新的还原提交

如果您在本地分支机构工作并且不与其他开发人员协作,请使用RESET。由于 Reset 会破坏提交,您的重置提交可能在其他开发人员的存储库中可用,并且他可能会不小心再次推送它。

如果您在协作分支上工作,请使用REVERT。在这种情况下,将添加一个新的还原提交。因此,即使有人提交,还原也会覆盖它。

遵守这些规则将防止将来出现与删除提交相关的任何问题。

关于Git:删除原始和上游仓库中的提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49816924/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com