在提交历史记录中追加git提交
我在Dev分支中有一个commit(让我们称之为ComV2),它是一个月前完成的,并且是10 commit。但是,我需要基于commit ComV2进行构建,但需要对该提交中的一个文件进行一些更改 到目前为止,我所尝试的:在提交历史记录中追加git提交,git,github,rebase,Git,Github,Rebase,我在Dev分支中有一个commit(让我们称之为ComV2),它是一个月前完成的,并且是10 commit。但是,我需要基于commit ComV2进行构建,但需要对该提交中的一个文件进行一些更改 到目前为止,我所尝试的: Checkedout ComV2-这导致头部分离(这是正常的) 在commit ComV2中对文件进行了更改 隐藏这些变化 为commit ComV1启动了git rebase,类型为“edit”(编辑)(ComV1比ComV2早一次提交) 从藏匿处取出零钱 对弹出的隐藏更改
重写像
Dev
这样的公共共享分支的历史记录通常不是一个好主意。这不是一个好主意的原因是,它会使签出此分支并正在使用它的任何其他人感到困惑
更安全的选择是通过以下方式提交git revert
ComV2commit:
git revert <SHA-1 for ComV2>
git还原
然后,做任何你需要的修补程序。此选项在
Dev
分支的头上添加一个或多个新提交,并且对于所有共享分支都是安全的。但是,最新的更改将显示为ComV2.1,历史上ComV2.1之后发生的更改将不会出现在ComV2.1中,而ComV2.1现在是最新的提交。如果不重写历史,您将无能为力。事实上,您的代码库中有一个bug已经有一段时间了。然后你把它修好了;这个故事没有什么不对或不寻常的地方。您可以尝试交互式rebase,但如果在ComV2
和分支头之间有任何合并提交,则可能必须重新进行合并。如果没有其他人正在使用或曾经见过Dev
,则可以尝试git rebase-i HEAD~15
,然后将ComV2
提交的pick
更改为edit
。然后,当重基暂停时,您可以修复该错误。