我在处理一个文件时,发现我的当前提交出了问题,我想回到早期的提交版本,针对特定的文件进行处理?
我进行了搜索,似乎没有人回答类似的问题(如何在git中将文件恢复到之前一次提交的更改)....
希望有一个简单的答案。
git reset <commit hash> <filename>
git checkout <commit-id> file(s)
请注意,它很容易被覆盖,因此请谨慎使用文件通配符,因为它们可能会一次性覆盖多个文件。如需帮助,请查看具有所需文件过滤器的git log
消息:
git log <file>
只显示与搜索的<file>
相关的提交记录。
嗯,可能让你感到困惑的主要问题是git跟踪整个仓库的完整版本,而不仅仅是一个文件。因此,您需要确定哪个版本的仓库具有您正在查找的文件版本,并回滚到该版本。
如果您只想要那个旧版本的文件,但希望保留仓库在此期间所做的所有其他更改,则需要进行更多的工作。
对于像回滚这样的复杂操作,我通常建议使用其中一个GUI工具(如git gui),因为它们可以让您更好地可视化即将要执行的操作。
git checkout
,正如 @progo 的回答所述。 - Aristotle Pagaltzis