我刚刚在我的新项目的根上做了一个git初始化。
然后我创建了一个.gitignore文件。
现在,当我输入git status时,.gitignore文件出现在未跟踪文件列表中。为什么呢?
我刚刚在我的新项目的根上做了一个git初始化。
然后我创建了一个.gitignore文件。
现在,当我输入git status时,.gitignore文件出现在未跟踪文件列表中。为什么呢?
当前回答
最终用户很可能希望Git忽略”。gitignore”文件,因为Eclipse创建的IDE特定文件夹可能与NetBeans或其他IDE不同。因此,为了保持源代码与IDE的对立性,很容易忽略一个自定义git,因为每个开发人员可能使用不同的IDE,而不与整个团队共享。
其他回答
如果你已经签入了.gitignore,并且你想忽略对它的修改,看看这个答案:
尝试使用这个命令: git update-index——assume-unchanged FILENAME_TO_IGNORE 要反转它(如果你想提交更改),使用: Git update-index——no-assume-unchanged 更新: 下面是如何列出“假定不变”文件在当前 目录: git ls-files -v | grep -E "^[a-z]" 因为-v选项会用小写字母表示" assume unchanged " 文件。
其思想是将特定于项目的文件放入.gitignore文件中,并(如前所述)将其添加到存储库中。例如.pyc和.o文件,测试套件创建的日志,一些fixture等等。
对于您自己的安装程序创建的但不一定会出现在每个用户面前的文件(例如。swp文件,如果您使用vim,隐藏的ecplise目录等),您应该使用.git/info/exclude(如上所述)。
注意以下“问题”有时您想添加目录,但这些目录中没有文件。简单的解决方案是创建一个包含以下内容的.gitignore:
*
这个接缝工作得很好,直到您意识到目录没有添加到存储库(正如预期的那样)。这样做的原因是.gitignore也将被忽略,因此目录是空的。因此,你应该这样做:
*
!.gitignore
这似乎只适用于当前目录,以便让Git忽略存储库中的所有文件。
更新此文件
.git/info/exclude
用您的通配符或文件名
* pyc * swp 赶紧*
我认为在某些情况下,忽略.gitignore是非常有用的。例如,当您有多个团队或一个大型团队在同一个代码库上工作时。在这种情况下,你需要有一些约定,其中一个约定是关于git回购时忽略的内容。它通常是关于忽略IDE或OS创建的文件和目录,一些生成的日志等。
然而,有一种力量倾向于对.gitignore文件进行非常规的更改。.gitignore文件可以被不负责任的人、错误地、被使用的工具或在其他情况下进一步更改。
为了有一个反作用力,我们可以这样做:
首字母。gitignore应该反映团队的惯例, 在它被压入之后,.gitignore应该通过添加.gitignore条目来确保安全,并再次压入该更改。.gitignore文件以这种方式被“密封”。
“密封的”.gitignore文件可以在本地进行更改,而无需将更改者传播给团队的其他成员。然而,如果一个变更在整个团队中得到了广泛的同意,那么就有可能“打开”它,改变它,然后再“密封”它。那不可能是错误的,只能是有意的。
可悲的是,你不能百分之百地保护自己不做蠢事,但这样做你已经尽了一切努力来防止蠢事发生。
如果你的团队规模相对较小,但拥有非常优秀的专业人员,那么这就不重要了,但即使是那些人也会因为少担心一件事而感激不尽。
当你不能对基础设施设置做任何事情时,使用.git/info/exclude很酷,只是覆盖你自己的一个**以免出错。
从正确和错误的角度来看,我赞成在。gitignore文件中加入。gitignore条目,让每个人都可以自由地在本地做任何他们想做的事情,但不侵犯他人。