4

我正在尝试在 git 中提交正确的文件,但是在正确配置我的 gitignore 时遇到问题。我按照此处的说明创建了 gitignore 文件(django 项目):

# File types #
##############
*.pyc
*.swo
*.swp
*.swn

# Directories #
###############
logs/

# Specific files #
##################
projectname/settings.py

# OS generated files #
######################
.DS_Store
ehthumbs.db
Icon
Thumbs.db
*~

问题是 settings.py 被包含在提交中:

Admin$ git add .
Admin$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   modified:   projectname/settings.py

如何忽略我的 gitignore 中的设置?

4

3 回答 3

15

看起来您已经settings.py受到 git 的版本控制。在这种情况下,git 将继续跟踪文件——不管你写什么.gitignore

您必须明确告诉 git 忘记settings.py

  1. 将其添加到.gitignore(如您所做的那样)
  2. 从 git 中删除文件而不删除文件:git rm --cached projectname/settings.py
  3. 提交更改:git commit -m "remove settings.py"

之后 git 将忽略该文件。但请注意,已经提交的版本将保留在您的存储库中。

于 2013-10-29T18:45:51.060 回答
0

尝试/在您的目录之前添加

# Specific files #
##################
/projectname/settings.py

如需更多信息,

$ mkdir git_test
$ cd git_test/
~/git_test $ git init
Initialized empty Git repository in /home/linux/git_test/.git/
~/git_test $ touch .gitignore
~/git_test $ vim .gitignore
~/git_test $ cat .gitignore 
/aa/aa.py

~/git_test $ mkdir aa
~/git_test $ touch aa/aa.py
~/git_test $ 
~/git_test $ 
~/git_test $ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   .gitignore
nothing added to commit but untracked files present (use "git add" to track)

如果您仍然面临同样的问题:

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

于 2013-10-29T18:42:29.027 回答
0

对于已经版本化的文件,GitHub 帮助页面建议使用git update-index --assume-unchanged projectname/settings.py.gitignore,而不是 .gitignore。

于 2013-10-29T18:47:18.407 回答