[英]Git: Ignore tracked files
我在存儲庫中有一些跟蹤文件,這些文件在構建代碼時會自動修改。 我不想取消跟蹤它們,我只是不希望它們顯示為已修改,並且我不希望它們在我添加 git 時上演。
這可能嗎?
當然。
git update-index --assume-unchanged [<file> ...]
要撤消並再次開始跟蹤:
git update-index --no-assume-unchanged [<file> ...]
在filter命令中使用git屬性和%f的另一種解決方案:
git config filter.orig.clean "cat %f.orig"
cp filename filename.orig
echo "filename filter=orig" >> .git/info/attributes
echo "filename.orig" >> .git/info/exclude
另一種方法(來自Seth Robertson現在刪除的答案,但我發現它有用,所以它有效復活)是維護一個“跟蹤”的模板文件,然后有本地未跟蹤的版本,例如:“config.sample.ini”或“ config.ini.template“請參閱https://gist.github.com/canton7/1423106以獲取完整示例。
如果文件在git等中更改,則不會有任何顧慮,並且您可以在本地未跟蹤文件上使用.gitignore(最終)。
接受的答案不正確。 --assume-unchanged
只會導致 Git 跳過某些(有時是昂貴的)文件系統檢查——它不能保證 Git 將文件顯示為“未更改”。
但是,帶有選項--skip-worktree
的相同命令確實有效。 因此,為了防止跟蹤但已更改的文件在 Git 狀態中顯示為已更改,請使用
git update-index --skip-worktree [<file> ...]
要撤消並再次開始將其顯示為已更改:
git update-index --no-skip-worktree [<file> ...]
另請參閱此答案中來自 Git 維護者的引用 email ,Git 文檔git-update-index和FallenGameR 的博客條目關於兩種不同場景的反應。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.