我刚刚在提交中添加了一个我不想要的文件。它是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。我该怎么办?我还没有推动改变。
答案 0 :(得分:3)
git reset HEAD~1
会将目录恢复到提交之前的状态。然后,您可以将.gem
添加到.gitignore
(或*.gem
,如果您不想要它们)并执行新的提交。
这足以让我感到困惑,因此我通常会避免git commit -a
或git add
整个目录。 git add -u
非常便于仅在已知文件中添加更改。
答案 1 :(得分:2)
首先,将HEAD的软重置为先前的提交。然后只需添加所需的单个文件,而不是.
,它将添加工作树中未被忽略的所有文件。
git reset HEAD^
git add <just the file you want to commit>
git commit -m "Edit sorting fixed."
如果您希望以后阻止某些文件被.
添加,请将它们添加到项目的.gitignore文件中。