git忘了.gitignore,如何取消提交?

时间:2013-11-21 07:58:19

标签: git

我从服务器检出分支并添加更多文件,但我没有注意到没有.gitignore,我运行:

git add ./*
git commit "xx"

有.class文件(和其他文件)不是我想要的?现在我添加.gitignore

#
*.class
bin/
gen/

我如何取消该提交并删除所有.class,bin /和gen /?

2 个答案:

答案 0 :(得分:1)

您可以使用

撤消提交
git reset HEAD^

修复.gitignore后,使用git add .添加所有内容。

答案 1 :(得分:0)

最好不要养成git add .的习惯。如果你正在提交,你可能想知道你所做的事情,而不仅仅是假设事情是你认为的那样。

如果您碰巧提交了不应该存在的内容,您可以在执行git commit --amend之后使用git reset unwanted_file_addition.txt修改您的提交。

如果您推送了包含机密信息的提交,您还需要做一些额外的工作。

如果发生这种情况,请参阅10月份发布的最新GitHub Article。它显示了如何处理这个问题。

它们也反映了我对更广泛的添加文件的方式的看法:“如果你是从命令行工作,请避免使用catch-all命令git add。和git commit -a,而是使用git add filename和git rm文件名来单独播放文件。“

一般用于您的环境的文件,例如编辑器交换文件,项目文件(例如.project)和可能污染您的项目的操作系统文件应位于您的系统或帐户.gitignore中文件位于/ etc /或其他系统范围的位置,更具体到您的个人工具,位于您的主文件夹中。