前段时间我在git存储库中做了一些删除操作,我想把它们中的一些删回,可能是代码或整个文件。这是最优雅的方式吗?
我可以在文件的实际状态和文件的旧状态之间进行某种交互式差异,只需复制/粘贴旧版本的内容吗?
答案 0 :(得分:4)
使用gitk path/filename
仅显示该文件的历史记录。外部差异是查看旧版本进行复制/粘贴的简单方法。您也可以选择提交ID并将其用于git revert
。
或者只是gitk并使用过滤器,如“触摸路径”到hilight并导航。在任何提交点,您都可以看到树而不是补丁。
真的有很多方法......
答案 1 :(得分:2)
您可以将git checkout
与路径一起使用:
git checkout fa1afe1 -- some/file.txt
这将覆盖some/file.txt
在提交fa1afe1
中的显示方式,而不会切换HEAD
。然后,您可以像往常一样使用git add
或git add -i
的选定部分添加它,并提交。
还有git checkout -p
首先只覆盖选定的部分。
答案 2 :(得分:0)
如果您在使用提交ID签出之前已经提交了提交。
git checkout commitId