【问题标题】:How to "revive" git blame history如何“复兴” git blame 历史
【发布时间】:2021-10-27 06:52:33
【问题描述】:

我发现自己处于危险的境地。

我致力于重构一个庞大的现有代码库。我决定注释掉一些测试,并在我修改代码时逐渐启用它们。不幸的是,我提交了注释,现在完整测试模块的 git blame 历史显示我是最后一次更改的作者。我对这段代码的唯一贡献是两次提交(注释和取消注释) - 不幸的是,第一次在我想保留的其他地方进行了更改。

我对 git 的了解不够,不知道是否有一种相对简单的方法可以更正 git 历史记录以显示代码先前状态的作者(在我注释掉之前)。

从头开始是我唯一的选择吗?

【问题讨论】:

    标签: git version-control git-blame


    【解决方案1】:

    Modern git blame 用论据告诉它:不要责怪这个版本See the --ignore-rev and --ignore-revs-file options。您最简单的方法是在某个文件中列出您自己的提交并使用--ignore-revs-file

    如果你的git blame 太旧,考虑升级Git;如果这是不可能的,请注意git blame 从任何指定的修订开始(然后向后工作),因此您可以在更改之前简单地选择一些修订。

    【讨论】:

    • 我的印象是 OP 希望永久历史记录(不仅仅是一次责备)显示原作者是作者,而不是 OP,他只添加和删除了一些 cmets(在特定部分)。也许恢复到原始提交会得到那个。至于保留OP想要保留的新提交的那些部分,可能是选择性存储(在还原之前),然后是还原,然后是存储应用,然后提交。听起来怎么样?
    • @RandyLeberknight:恢复(如果你的意思是git revert)不会有帮助:提交历史,恢复添加到历史通过添加另一个提交,现在原始提交所触及的每一​​行也被还原(将原件放回原处)所触及。重写历史记录以删除不需要的提交是可行的,但有一个明显的缺点是它会重写历史记录。
    • 啊,我现在明白了,我想。如果 OP 执行了我建议的还原操作,那么他们仍会被记录为做出该提交的用户。我的错。感谢您的澄清!
    猜你喜欢
    • 2019-12-21
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 2018-10-28
    • 2018-02-20
    • 2019-12-20
    • 2021-05-06
    • 1970-01-01
    相关资源
    最近更新 更多