从Git提交中删除文件

我正在使用Git,我已经用以下方法提交了一些文件

git commit -a

后来,我发现有一个文件被错误地添加到了提交中。

怎样才能从最后一次提交中删除一个文件?

注意!如果你只想从之前的提交中删除一个文件,并将其保留在磁盘上,请阅读上面的juzzlin'的回答

如果这是你的最后一次提交,你想**从本地和远程版本库中完全删除该文件,你可以。

1.删除该文件 git rm。 2.用修正标志提交:git commit --amend

amend标志告诉git再次提交,但要将这次提交与上次提交合并(不是合并两个分支的意思)。

正如评论中所说,在这里使用git rm就像使用rm命令本身!"。

评论(5)

如果你没有在服务器上推送更改,你可以使用

git reset --soft HEAD~1

它将重置所有的修改,并恢复到一次提交后的状态

如果你已经推送了你的修改,那么请按照@CharlesB的回答进行操作。

评论(8)

使用rm删除文件,就会删除它!

在git中,你总是在添加提交内容,而不是删除,所以在这种情况下,将文件返回到第一次提交之前的状态(如果文件是新的,这可能是一个删除'rm'的动作),然后重新提交,文件就会消失。

要把文件返回到以前的某个状态。

    git checkout  <path_to_file>

或将其返回到远程HEAD的状态。

    git checkout origin/master <path_to_file>

然后修改提交,你会发现该文件已经从列表中消失了(而不是从你的磁盘中删除!)。

评论(0)