簡體   English   中英

Git:忽略跟蹤的文件

[英]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-indexFallenGameR 的博客條目關於兩種不同場景的反應。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM