Git:使用checkout命令和commit恢复特定文件的旧版本

时间:2014-04-11 07:36:54

标签: git git-checkout

我想恢复到特定文件的先前版本 我正在使用以下命令。

git checkcout <commit hash> <file-name>

现在我想提交这个文件 我在做

git commit -a.

它给了我以下留言

&#34;无需提交,工作目录清理&#34;

编辑:所有这些提交都被推送到远程回购。

1 个答案:

答案 0 :(得分:3)

您的命令将HEAD指针移动到旧提交。

 git checkout <commit hash> <file-name>

您可能打算执行以下命令,该命令将&#34;恢复为特定文件的先前版本&#34;,而不移动当前HEAD。

 git checkout <commit hash> -- <file-name>

在上面的命令之后,git status会将文件显示为已修改。 然后,您可以git commit -a将文件提交到当前提交的顶部。

更新:如果您以前移动了HEAD指针,则在运行上述命令并提交之前,您很可能希望将其移回工作分支。所以完整的命令序列应该是:

 git checkout master
 git checkout <commit hash> -- <file-name>
 git commit -a