如何消除我不应该提交给我的仓库的文件?

时间:2014-05-06 22:44:49

标签: git visual-studio version-control

我是git n00b。我正在使用Visual Studio Git源代码控制提供程序。

我不小心上演并提交了许多生成并保存在我的Web项目的App_Data文件夹中的临时文件。

现在我的回购在提交之后是愚蠢的大量

如何消除我不应该提交给我的仓库的文件?

由于他们受到源代码管理,我不认为删除它们并再次提交会产生很大的不同(尽管我仍然尝试过,但肯定没有用)。

我知道将来我可以/应该App_Data添加.gitingnore,但现在损坏已经完成。 :(

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

$ git rm -rf <the folder with the temporary files>

或者,根据该名称找到某种文件名称和$ git rm

答案 1 :(得分:1)

我知道您希望从存储库中删除好的对象,而不仅仅是进行另一个将来隐藏它们的提交。

由于它只是您的本地存储库,因此与重写历史相关的大多数不良内容都不适用于此处。但是,我担心这种操作对于Visual Studio Git源代码控制提供程序来说太先进了,并且没有办法从扩展中实现这一点。


使用命令行工具,您可以执行interactive rebase,例如5次提交:git rebase -i HEAD~5。将打开一个文本编辑器,向您显示该范围内的所有提交,允许您对它们进行各种更改。

如果整个提交都不好,你只需要删除该行,然后让它重放其余部分。

如果只删除部分提交,您可以:

  • pick命令更改为相关行的edit
  • 退出编辑器以开始变基 - 它将在目标提交后停止
  • 删除您不想要的文件,即git rm -r App_Data
  • git rebase --continue通过更改修改您已停止的提交,并继续重播此后的其余提交

之后,git gc可能对清理数据库很有用。

答案 2 :(得分:1)

我们假设你安装了git命令。然后你可以通过简单地杀死你的最后一次提交来修复它:

git reset --hard HEAD~

您还可以在保留所有文件之后终止提交,而不是在此错误提交之后:

git reset --soft HEAD~