-1

我刚刚在提交中添加了一个我不想要的文件。它是 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。我该怎么办?我还没有推送更改。

4

2 回答 2

3

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

这让我非常痛苦,以至于我通常会避免git commit -agit add阅读整个目录。git add -u仅在已知文件中添加更改非常方便。

于 2013-06-25T02:50:11.777 回答
2

重置 HEAD 并提交

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

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

如果您想防止.将来添加某些文件,请将它们添加到项目的.gitignore文件中。

于 2013-06-25T02:51:37.190 回答