2016-02-13 62 views
0

我是Git的新手,这里是我的问题:我意外地添加了一个文件夹,其中包含对我的项目至关重要的文件,但未更改(例如,Downloaded /)。我之前没有跟踪过这个文件夹,它只是保持未触及提交提交。现在,在最后一次提交之后,当我对以前的某个提交进行签出时,Downloaded /文件夹将从文件管理器中消失。在Git中,一旦提交文件夹在结账时消失

恢复该更改并将该文件夹还原的正确方法是什么?我不想跟踪它,但是,也许我应该?

我尝试这样做:

git reset HEAD 

和此:

git update-index --assume-unchanged Downloaded/ 

我可以将此 '手动' 解决,如我的文件夹的备份。不过,出于学习的原因,我更喜欢用git来做。

我会感谢任何帮助!

回答

0

你有没有想过忽略这样的文件,以避免这样的错误? https://help.github.com/articles/ignoring-files/

你不应该考虑,你可以提交哪些文件,这应该在回购协议中设置(例如使用.gitignore,configs,不管)。

但正如你所说,也许你应该跟踪他们,但这取决于你..这些文件是否属于回购/项目?他们应该受版本控制吗?

对于临时目录(例如下载?),我会忽略它。

在你的情况,我想:

  • 添加.gitignore文件
  • ,然后使用git rm --cached <file>

其实这几乎是移除回购这些文件,你在找什么: gitignore after commit

+0

谢谢!是的,我想过无视;现在是时候实施了。我所说的文件是该项目的一部分,但我不需要将它们追踪到git历史记录中,因为没有对它们进行任何更改。 –

+0

所以这是某种本地配置?但是,也许甚至“假设不变”可以成为一种选择。如果你得到这些文件的“基本版本”,当你做一个新的结账/克隆(例如,当某人的新项目)? – d4Rk

+0

是的,我应该。这些是额外的脚本,如果没有它们,项目将无法正常工作。尽管如此,我仍然无法通过假设将文件夹恢复到项目的以前版本。 (它在最后一次提交之前已经存在)。在'--assume-unchanged'运行之后,我也不能阻止文件夹添加到临时区域。我运行了'git update-index --assume-unchanged'和'git ls-files | tr'\ n'''| xargs git update-index --assume-unchanged'在这个文件夹中,然后'git add [文件夹名称]'和'git status',它就在那里! –