我的目标是重新访问旧错误提交的原始更改(此后已恢复),但是由于许多事情都发生了变化,因此在我的工作树中将那些古老的更改放在 repo 协议(protocol)的 HEAD 中,解决问题并提交新的最好没有问题。
一千次提交前(一个月前),我提交了一个更改。
一百次提交前(一周前),有人发现了提交的一个微妙但 Not Acceptable 问题,以便快速解锁那个人我恢复了提交(git revert hash
.. . 工作起来很有魅力)。
冲刺已经过去,现在在我的存储库中的 HEAD,我想重新打开原始提交中已经被还原的更改,这样我就可以梳理这些更改并找出根本原因发现的问题。
将一千次提交之前的提交“重新打开”到我的本地工作树中的好方法是什么?(因此 git status
将被修改 在我的工作树中。)
更糟糕的情况是 git checkout
在另一个 repo 中并排执行旧提交并进行手动差异(例如,vi -d current/foo.cpp ancient/foo.cpp
) 并手动复制差异。听起来很乏味,而且出现手动错误的可能性更高。
会有一些冲突,但它们相对微不足道,例如固定的拼写错误或空格更改。
我不想按原样重新提交旧提交,因为它需要仔细检查和修复。
最佳答案
我建议在您的日志历史记录中找到还原提交 的散列,然后使用 <commit_hash>
你可以
git revert --no-commit <commitHash>
# or the shorter
git revert -n <commitHash>
...这会将原始提交的更改带入您的工作树,而无需实际提交,这让您可以测试、编写更多代码,然后在您准备好时提交。
关于git - 如何将 "reopen"一个古老的提交到最近提交中恢复的工作树中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69677716/