我开始使用带有xcode项目的git,并且最近发现我可以使用.gitignore和.gitattributes文件来忽略编译器和系统的噪音. 现在我已经有了.gitignore和.gitattributes文件了,我如何"应用"新的忽略规则并摆脱版本控制的问题?
我的.gitignore文件是:
# xcode noise
*.modelv3
*.pbxuser
*.perspective
*.perspectivev3
*.pyc
*~.nib/
build/*
# Textmate - if you build your xcode projects with it
*.tm_build_errors
# old skool
.svn
# osx noise
.DS_Store
profile
Run Code Online (Sandbox Code Playgroud)
我的.gitattributes文件是:
*.pbxproj -crlf -diff -merge
Run Code Online (Sandbox Code Playgroud)
谢谢!
Chr*_*sen 64
以下是一种"解锁"当前排除模式集下将被忽略的文件的方法:
(GIT_INDEX_FILE=some-non-existent-file \
git ls-files --exclude-standard --others --directory --ignored -z) |
xargs -0 git rm --cached -r --ignore-unmatch --
Run Code Online (Sandbox Code Playgroud)
这会将文件保留在工作目录中,但会将其从索引中删除.
这里使用的技巧是为git ls-files提供一个不存在的索引文件,以便它认为没有跟踪文件.上面的shell代码询问如果索引为空将被忽略的所有文件,然后使用git rm将它们从实际索引中删除.
文件"未跟踪"后,使用git status验证没有删除任何重要内容(如果是这样,请调整排除模式并使用git reset -- path恢复删除的索引条目).然后做一个新的提交,省去"crud".
"crud"仍然会出现在任何旧的提交中.如果你真的需要一个干净的历史记录,你可以使用git filter-branch来生成旧提交的干净版本(使用git filter-branch的 nb 将"重写历史记录",所以如果你有任何合作者已经拉过它,就不应该轻易做到这一点"crud" 首次推出后的任何历史提交.
Nea*_*l L 37
使用git rm --cached文件和文件git rm -r --cached的build/目录
Sve*_*cke 10
如果您已经在跟踪要忽略的文件,则必须将其删除
git rm --cached <file>
Run Code Online (Sandbox Code Playgroud)
Git不会忽略已经跟踪过的文件(即你用git add添加它们).
| 归档时间: |
|
| 查看次数: |
39111 次 |
| 最近记录: |