2015-12-12 42 views
0

這裏是我的.gitignore文件:的.gitignore沒有忽視文件

# See https://help.github.com/articles/ignoring-files for more about ignoring files. 
# 
# If you find yourself ignoring temporary files generated by your text editor 
# or operating system, you probably want to add a global ignore instead: 
# git config --global core.excludesfile '~/.gitignore_global' 

# Ignore bundler config. 
/.bundle 

# Ignore the default SQLite database. 
/db/*.sqlite3 
/db/*.sqlite3-journal 

# Ignore all logfiles and tempfiles. 
/log/* 
!/log/.keep 
/tmp 

# Ignore application configuration 
/config/application.yml 
/config/application.yml.bak 
*.bak 

現在,我的倉庫是在https://github.com/rmohan80/learn-rails

爲什麼我的最新承諾 - 「爲電子郵件添加配置」加Readme.rdoc .bak但忽略.gitignore.bak

任何線索?

回答

1

明星角色確實會匹配以句點開頭的文件。 您可以添加.*.bak忽略它們在你的情況下,也可以改變你的shell水珠選項:

# capture dot file 
shopt -s dotglob 

# do git stuff here 

# stop capturing dot file 
shopt -u dotglob 

這裏的一個類似的問題就迎刃而解了:https://stackoverflow.com/a/19365350

+0

我已經更新了問題,使其更加清晰。然而,問題不在於shell解釋 - 一個ls * .bak正確顯示所有包含.bak的文件 - 即4個文件 - 包括.gitignore.bak和Readme.rdoc.bak – zooter

+0

@zooter,git使用稍微不同的規則。例如,領導/並不意味着你排除了文件系統根路徑中的某個文件。試試Slagt的第一個建議。修改其中一個新排除的文件並運行「git status」以查看沒有任何內容會被修改。 – benjamin

+0

似乎沒有工作 - 我添加了。* .bak和輸出C:\ Users \ ram \ ruby​​ \ learn-rails [master +3〜2 -0!]> git status 在分支主文件上 您的分支是up-以'origin/master'爲起始日期。 變化不連續上演承諾: (使用「混帳添加 ...」更新的內容將被提交) (使用「git的結帳 - ...」丟棄在工作目錄的變化) 修改:的.gitignore 修改:README.md.bak 未跟蹤文件: (使用 「混帳添加 ...」 在什麼將致力於包括) README.md.bak.bak 配置/環境/發展。 rb.bak config/secrets.yml.bak – zooter

0

你必須檢出頭,讓你的存儲庫看起來沒有修改。然後運行以下命令:

$ echo '*.*.bak' >> .gitignore 

要排除的格式爲README.md.bak文件。

和運行

$ echo '**/*.bak' >> .gitignore 

排除在當前目錄下的任何地方樹像格式化README.bak文件。

擁有.bak.bak文件是你不想要的東西。