在意外删除文件并将其添加回其他位置后,如何修复git历史记录?
我的情况是这样的:我将一个文件移动到了一个新的位置,但意外地只进行了删除。然后在随后的提交中,我在新位置提交了新文件在意外删除文件并将其添加回其他位置后,如何修复git历史记录?,git,Git,我的情况是这样的:我将一个文件移动到了一个新的位置,但意外地只进行了删除。然后在随后的提交中,我在新位置提交了新文件git log--follow似乎没有检测到文件被移动,因此现在没有显示该文件的完整历史记录 然后,我试图通过将文件移回其原始位置来修复此问题,但它现在仍有被截断的历史记录lol,修复失败 我现在如何修复这个文件,让git检测历史链 您需要将两个提交合并在一起: git reset --soft "HEAD^" git commit --amend 或者您可以完全返回到上一次提交
git log--follow
似乎没有检测到文件被移动,因此现在没有显示该文件的完整历史记录
然后,我试图通过将文件移回其原始位置来修复此问题,但它现在仍有被截断的历史记录lol,修复失败
我现在如何修复这个文件,让git检测历史链 您需要将两个提交合并在一起:
git reset --soft "HEAD^"
git commit --amend
或者您可以完全返回到上一次提交,重做内容并修改提交:
git reset --hard "HEAD^"
# create the file, or move, ...
git commit --amend
最后,如果您已按下remote键,则需要使用-f
覆盖远程历史记录:
git push origin -f
您需要将两个提交合并在一起:
git reset --soft "HEAD^"
git commit --amend
或者您可以完全返回到上一次提交,重做内容并修改提交:
git reset --hard "HEAD^"
# create the file, or move, ...
git commit --amend
最后,如果您已按下remote键,则需要使用-f
覆盖远程历史记录:
git push origin -f
git push origin-f
两个选项都需要吗?@BT:是的,每当历史记录被修改时,我都会使用rebase(git rebase-I HEAD~5)做一些非常类似的事情,然后挤压除1之外的所有提交,并在没有-f参数的情况下进行推送(忘了它)。虽然我在历史上仍然有最初的承诺,但历史现在很好。可能没有你的方法干净,但它让我得到了我想要的。我按照以下指南合并提交:。谢谢git push origin-f
两个选项都需要吗?@BT:是的,每当历史记录被修改时,我都会使用rebase(git rebase-I HEAD~5)做一些非常类似的事情,然后挤压除1之外的所有提交,并在没有-f参数的情况下进行推送(忘了它)。虽然我在历史上仍然有最初的承诺,但历史现在很好。可能没有你的方法干净,但它让我得到了我想要的。我按照以下指南合并提交:。谢谢