我和我的队友正在使用Visual Studio在MVC C#中工作。今天,我尝试执行.gitignore来忽略要提交到我们的存储库的文件夹,并且文件夹(App_Data/
)已经消失(在我们的存储库中)。
我将逐步说明我完成的事情:
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/
git add .
,git commit -m "asdfad"
和git push
git rm -r --cached .
,git add .
和git commit -m "Cached"
App_Data/
,在VisualStudio中,我看不到App_Data/
为空,并且某些.cs
(C#类)无法跟踪,因为队友进行了更改并且我没看到他们。答案 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)
最后,我重置了分支,并从最后一个状态开始创建了一个新的存储库。