我喜欢使用 git blame
作为次要文档形式。它非常有用,可以检查为什么进行了提交,何时以及由谁进行的。
但是有时候会丢失特定行的历史记录。以下是可能发生这种情况的一些情况:
进行更改,但随后撤销了更改。
某人重新缩进文件并提交。 稍后恢复标准缩进并提交。
某人将文件复制到没有历史记录的新分支/存储库中。 我仍然在一个分支中拥有原始历史记录,我想将其合并到新分支中。
在所有这些情况下,git blame
将显示文件的最新更改,这通常不太有用。例如,“还原缩进”或“撤消提交#123”或“初始提交:所有文件”。
是否有任何方法提示 git blame
我们对旧历史记录更感兴趣而不是新历史记录?
以下是情况:
... - A - B - C
- Commit A中的所有行都有良好的注释。
- Commit B重新缩进了整个文件。
- Commit C(可能是一个还原操作)将文件恢复到了Commit A的状态。
我想知道是否可以执行一个具有优先级父级的神奇的Git合并:
.-------.
/ \
... - A - B - C - D
- 提交 D 告诉 Git A 是
git blame
跟随的优先历史记录。
另一个我认为可以接受的可能性:
E - F
\
... - A - B - C - D
- 提交 E 是一个新的空分支。
- 提交 F 仅添加了关注的文件。
- 提交 D 合并了两个历史,使 F 成为历史的优先。
我希望将其永久地纳入历史记录中。当搜索历史记录时,我不太想传递额外的选项给 git blame
。
git merge -s ours dev2
进行合并,那么 git blame 中就会出现dev1而不是dev2。我想知道是否仍有希望... :) - joeytwiddle