29

我正在寻找创建一个.gitignore文件,这样某些文件就不会被签入到存储库中。有没有人有关于如何以及在哪里放置这个文件的指南?我尝试将它放在我的工作目录中,运行 git status 并且它仍在拾取我希望它忽略的文件。

我使用了.gitignore我找到的这个文件:

###################
# compiled source #
###################
*.com
*.class
*.dll
*.exe
*.pdb
*.dll.config
*.cache
*.suo
# Include dlls if they’re in the NuGet packages directory
!/packages/*/lib/*.dll
# Include dlls if they're in the CommonReferences directory
!*CommonReferences/*.dll
####################
# VS Upgrade stuff #
####################
UpgradeLog.XML
_UpgradeReport_Files/
###############
# Directories #
###############
bin/
obj/
TestResults/
###################
# Web publish log #
###################
*.Publish.xml
#############
# Resharper #
#############
/_ReSharper.*
*.ReSharper.*
############
# Packages #
############
# it’s better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
######################
# Logs and databases #
######################
*.log
*.sqlite
# OS generated files #
######################
.DS_Store?
ehthumbs.db
Icon?
Thumbs.db
4

4 回答 4

26

.gitignore 的放置取决于是否只需要忽略一个 repo 或所有 repo 的文件。对于一个 repo,将其放在 repo 的根目录中。

当您在现有存储库中创建 .gitignore 文件或添加已在存储库中的文件时,您必须确保从存储库中删除要忽略的文件。

如果根目录中有 test.dll,则必须这样做

git rm --cached test.dll

现在,如果您有很多文件,就像您说的那样,您可以选择以下选项,从缓存中删除所有内容,将其全部添加回来(不会添加 .gitignore 中的文件)并再次提交所有内容。

git rm -r --cached .
git add .
git commit -m "Start using .gitignore"
于 2012-06-15T12:50:59.327 回答
14

你必须.gitignore在 Git 看到它之前添加到索引中。即,git add .gitignore

于 2012-06-15T12:21:09.760 回答
4

我从事的项目,我在项目的根目录中有 .gitignore 文件,其中 .git 目录。确保文件已提交。

请注意,如果您已经提交了您试图忽略的文件(即 Git 正在跟踪它们),那么它们就不能被忽略。您必须先取消跟踪它们。

https://help.github.com/articles/ignoring-files

于 2012-06-15T12:22:38.210 回答
1

从@thescientist 发布的链接中:

Git 允许您通过假设它们未更改来忽略这些文件。这是通过运行

git update-index --assume-unchanged path/to/file.txt

命令。一旦将文件标记为这样,git 将完全忽略该文件上的任何更改;它们不会在运行 git status 或 git diff 时出现,也不会被提交。

于 2013-03-13T14:54:22.037 回答