提交中包含的gitignore设置

时间:2013-10-29 18:35:31

标签: git commit gitignore

我正在尝试在git中提交正确的文件,但是在正确配置我的gitignore时遇到了问题。我按照here的说明创建了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中的设置?

3 个答案:

答案 0 :(得分:5)

看起来您已经在git的版本控制下拥有settings.py。在这种情况下,git将继续跟踪文件 - 无论您在.gitignore中写什么。

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

  1. 将其添加到.gitignore(正如您所做)
  2. 从git中删除文件而不删除文件:git rm --cached projectname/settings.py
  3. 提交更改:git commit -m "remove settings.py"
  4. 之后git将忽略该文件。但请注意,已提交的版本将保留在您的存储库中。

答案 1 :(得分: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

答案 2 :(得分:0)

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