在提交历史记录中添加git commit

时间:2018-06-29 09:24:00

标签: git github rebase

我在一个月前进行的Dev分支中有一个提交(称为ComV2),在HEAD后面有10个提交。但是我需要基于ComV2提交进行构建,但对该提交中的文件之一进行一些更改。

到目前为止,我已经尝试过:

  1. 已签出ComV2-这导致获得分离的HEAD(很正常)
  2. 在ComV2提交中对文件进行更改
  3. 隐藏了这些更改。
  4. 以Commit1的“编辑”类型开始git rebase(ComV1比ComV2早一个提交)
  5. 隐藏的更改
  6. 对弹出的隐藏更改进行提交。我们称之为ComV2.1提交
  7. git是否已重新设置基点-继续
  8. 在新分支中检出ComV2.1。让我们称之为TempBranch
  9. 切换回Dev分支-这导致将HEAD重新附加到最新提交
  10. 将TempBranch并入Dev

问题:

此合并导致对Dev分支中最新提交的更改被插入到我不需要的ComV2提交的其余文件中,并且ComV2.1在历史上不在ComV2.1之后。这是根据git log的最新提交。我还希望将此更改后的文件添加到ComV2.1之后的提交中

问题:

  1. 我如何使ComV2.1在ComV2之后显示,并且具有与ComV2完全相同的代码,除了我正在ComV2.1中修改的文件之外?
  2. 这样做是一种好习惯吗? (我是唯一从事此项目的人)

1 个答案:

答案 0 :(得分:0)

重写Dev之类的公共共享分支的历史通常不是一个好主意。之所以说它不是一个好主意,是因为它会使其他签出该分支并正在使用它的人感到困惑。

一种更安全的选择是通过以下方式git revert提交ComV2

git revert <SHA-1 for ComV2>

然后,进行所需的任何修补程序。此选项在HEAD分支的Dev顶部添加一个或多个新提交,对于所有共享该分支都是安全的。