[英]Git: ignore specific file(s) both on Commit and Pull
我使用update-index --assume-unchanged“忽略”我們的ConnectionString.config,因為我在開發過程中經常更改它,並且無論如何都是由我們的構建服務器自動生成的; 但是,當執行Pull / Rebase時,操作失敗,因為它會在本地覆蓋它,迫使我將其存儲然后恢復它。
有沒有辦法在提交和拉取時忽略文件? 我只是希望Git離開它。
如果您希望這只發生在本地系統上, 則本地.git/info/exclude
文件應該可以解決問題。
要從上面的堆棧帖子中重新引用答案:
特定於特定存儲庫但不需要與其他相關存儲庫共享的模式(例如,存儲在存儲庫中但特定於一個用戶工作流的輔助文件)應該進入
$GIT_DIR/info/exclude file
。
.git/info/exclude
文件的格式與任何.gitignore文件的格式相同。 另一種選擇是將core.excludesFile設置為包含全局模式的文件的名稱。
請注意,如果您已經有非分段更改,則必須在編輯ignore-patterns后運行以下命令:
git update-index --assume-unchanged [<file>...]
注意在$ GIT_DIR:這是使用的符號遍布 git的手冊只是為了表明路徑git倉庫。 如果設置了環境變量,那么它將覆蓋您所在的任何回購的位置,這可能不是您想要的。
您可以嘗試使用assume-unchanged
標志
https://git-scm.com/docs/git-update-index
指定此標志時,不會更新為路徑記錄的對象名稱。
相反,此選項設置/取消設置路徑的“假定未更改”位。
當“假設未更改”位打開時,用戶承諾不更改文件並允許Git假定工作樹文件與索引中記錄的文件匹配。 如果要更改工作樹文件,則需要取消設置該位以告知Git。 當在具有非常慢的lstat(2)系統調用(例如cifs)的文件系統上處理大項目時,這有時是有用的。
如果需要在索引中修改此文件,例如在提交中合並時,Git將失敗(優雅); 因此,如果上游更改了假定未跟蹤文件,則需要手動處理該情況。
是否有任何理由需要將文件簽入您的git存儲庫? 如果沒有,請將其從存儲庫中刪除並將其添加到.gitignore
:
git rm filename.foo
echo "filename.foo" >> .gitignore
git add .gitignore
git commit
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.