我们2位开发人员正在分支机构工作。我做了两次提交,推了推,后来我们决定不再要它们了。
我在2次提交之前对sha进行了git reset -i <sha>
,然后强制将它推送到github上的分支。
另一个开发人员拥有代码的本地副本,我的2次提交,以及他自己的一些提交,他没有被推送到github。
我们不知道如何保存他的代码和提交,但删除了我从推送的github分支中删除的两个提交。
有什么想法吗?
答案 0 :(得分:3)
如果我理解正确,其他开发人员的本地分支看起来像这样(反向时间顺序):
+- (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.如果是这样,请在他的分支中执行以下操作:
这应该达到你想要的效果,但是,除非你有充分的理由不这样做,否则我会推荐以下内容:
最终结果是相同的,除了三个&#34;额外&#34;提交,B,C和&#34;撤消提交&#34;。这确实避免了推力,这不是错误的&#34;本身,但可能导致问题。如果您将来需要它,也可能在不同的环境中,它还会在历史记录中保留您不需要的代码。