当只有一次提交时,Git命令撤消单个文件的提交?

时间:2015-12-30 17:34:44

标签: git

我的一位团队成员对eclipse .project文件进行了更改并提交,并显示如下。

Javanoob@DELL:~/workspace/Project$ git log -- .project
commit 1b8d8529b334343543rfefcfsdwerwedwdssadd5
Author: Some Developer <some_developer@mail.com>
Date:   Tue Dec 29 10:37:10 2015 -0500

    Committed.

我想将此文件恢复到此特定提交之前的旧状态。

谷歌搜索后我发现我可以使用git checkout abcde file/to/restore但我不知道在这个命令中用什么来代替abcde,因为git日志只显示一个提交作为此文件的历史记录。

编辑此特定文件只有一次提交,在此之前不再提交。

2 个答案:

答案 0 :(得分:3)

假设您从不希望您的.project文件已提交,但 希望在本地提交:

  1. git rm --cached path/to/file会暂存要删除的文件但将其保留在磁盘上

  2. 创建或修改您的.gitignore文件以包含*.project

  3. git add .gitignore暂存忽略文件

  4. git commit -m "backed out project"删除.project文件并添加忽略文件

答案 1 :(得分:2)

如果只有一个提交,并且它是您的同事,那么在您的同事提交之前,该文件未被签入。 Git没有以前的版本。 Git无法将其恢复到特定提交之前的状态,因为就Git而言,之前的状态是“空”。

您可以做的最好的事情是检查您自己的目录备份。