gitignore后文件夹消失了

时间:2018-10-10 19:59:18

标签: c# asp.net-mvc git visual-studio github

我和我的队友正在使用Visual Studio在MVC C#中工作。今天,我尝试执行.gitignore来忽略要提交到我们的存储库的文件夹,并且文件夹(App_Data/)已经消失(在我们的存储库中)。 我将逐步说明我完成的事情:

  1. 我做了.gitignore:
Tp_Integrador/.vs/
Tp_Integrador/Tp_Integrador/obj/
Tp_Integrador/packages/
Tp_Integrador/Tp_Integrador/App_Data/
Tp_Integrador/Tp_Integrador/bin/
Tp_Integrador/Tp_Integrador/Content/
Tp_Integrador/Tp_Integrador/Properties/
Tp_Integrador/Tp_Integrador/Scripts/
  1. git add .git commit -m "asdfad"git push
  2. git rm -r --cached .git add .git commit -m "Cached"
  3. 最后,在我们的存储库中,我看不到文件夹App_Data/,在VisualStudio中,我看不到App_Data/为空,并且某些.cs(C#类)无法跟踪,因为队友进行了更改并且我没看到他们。

3 个答案:

答案 0 :(得分:1)

Git不会存储空文件夹,因此,如果要在其中保存App_Data文件夹,则必须再次手动创建(如果已删除)文件夹,然后在其中放入一个空文件,Git可以跟踪并确保始终创建文件夹。

一种常见的模式是在您一直希望Git保留的文件夹内创建一个名称为.gitkeep的空文件,然后在.gitignore内告诉Git忽略您的文件夹,好的,但不要忽略任何位置名为.gitkeep的文件。

例如

Tp_Integrador/Tp_Integrador/App_Data/
!.gitkeep

答案 1 :(得分:0)

  当我们更改代码(例如,C#类)时,

App_Data内容也会更改。我想要的是及时返回并把文件夹设置为昨天

如果可以的话,请在问题描述的顺序之前,将分支重置为提交,然后再执行git log,然后选择带有“已缓存”作为注释的提交之前的提交。

git checkout -b newBranch <oldCommit>
git push -u origin newBranch

目标是在替换旧newBranch之前报告对该Tp_Integrador/Tp_Integrador的更改。

然后,如果您需要忽略.gitignore的某些部分而不是子文件夹,请在newBranch(在Tp_Integrador/Tp_Integrador/** !Tp_Integrador/Tp_Integrador/**/ !Tp_Integrador/Tp_Integrador/App_data/ 中)进行操作:

git rm -r --cached . , git add .

这样,Tp_Integrador/Tp_Integrador/App_data/将从Tp_Integrador/Tp_Integrador/添加文件,而不从Referenced entity [meta.timer-atom] must be defined的任何其他子文件夹添加文件。

答案 2 :(得分:0)

最后,我重置了分支,并从最后一个状态开始创建了一个新的存储库。