gpt4 book ai didi

git - 在另一个开发人员重置后修复 git 分支

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

我们 2 名开发人员正在一个分支上工作。我做了 2 次提交,并推送了它们,后来我们决定不再需要它们。

我做了git reset -i <sha>在2次提交之前到sha,然后强制将其推送到github上的分支。

另一个开发人员有代码的本地副本,包括我的 2 次提交,以及他自己的一些提交,但他还没有被推送到 github。

我们不确定如何保留他的代码和提交,但删除了我从推送的 github 分支中删除的两个提交。

有什么想法吗?

最佳答案

如果我没理解错的话,其他开发者的本地分支是这样的(倒序):

+- (F) His last commit (Required)
+- (E) His commits 2, 3, 4, etc ... (Required)
+- (D) His commit 1 (Required)
+- (C) Your commit 2 (To be discarded)
+- (B) Your commit 1 (To be discarded)
+- (A) Base commit (one that you reset to)

您想选择他的提交 D、E、F,并丢弃您的提交 B 和 C。如果是这样,请在他的分支中执行以下操作:

  • 创建一个标签来提交 F。
  • 重置以提交 A。
  • Cherry-pick 提交 D、E、F。(您可能需要解决 merge 冲突。)
  • 强制推送到远程分支。

这应该可以实现您想要的,但是,除非您有充分的理由不这样做,否则我会推荐以下内容:

  • 您再次提交以撤消您的更改,然后推送到远程。
  • 其他开发人员 pull 这个新提交,并对其进行 rebase 。
  • 然后他将其推送到远程。

除了三个“额外”提交 B、C 和“撤消提交”之外,最终结果是相同的。这确实避免了强制 push ,这本身并不是“错误”的,但有时会导致问题。它还会在历史记录中保留您不需要的代码,以备将来需要时使用,也许是在不同的上下文中。

关于git - 在另一个开发人员重置后修复 git 分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30999155/

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