从Git提交中删除文件

时间:2013-06-25 02:47:03

标签: git

我刚刚在提交中添加了一个我不想要的文件。它是Gem的64位版本,由于我的其他开发和生产机器使用的是32位版本,因此仅在64位机器上使用它是有意义的。我跑了这个:

$ git add .
$ git commit -a -m "Edit sorting fixed."
[master f99324f] Edit sorting fixed.
 2 files changed, 4 insertions(+), 3 deletions(-)
 create mode 100644 vendor/cache/libv8-3.11.8.17-x86_64-darwin-12.gem

我希望提交更改,但我希望从提交中排除该gem。我该怎么办?我还没有推动改变。

2 个答案:

答案 0 :(得分:3)

git reset HEAD~1会将目录恢复到提交之前的状态。然后,您可以将.gem添加到.gitignore(或*.gem,如果您不想要它们)并执行新的提交。

这足以让我感到困惑,因此我通常会避免git commit -agit add整个目录。 git add -u非常便于仅在已知文件中添加更改。

答案 1 :(得分:2)

重置HEAD并提交

首先,将HEAD的重置为先前的提交。然后只需添加所需的单个文件,而不是.,它将添加工作树中未被忽略的所有文件。

git reset HEAD^
git add <just the file you want to commit>
git commit -m "Edit sorting fixed."

如果您希望以后阻止某些文件被.添加,请将它们添加到项目的.gitignore文件中。