簡體   English   中英

Git:忽略Commit和Pull上的特定文件

[英]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.

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