簡體   English   中英

Git:如何忽略對跟蹤文件的更改?

[英]Git: How to ignore changes to a tracked file?

我的項目中有一個帶有數據庫設置的文件,我已將其設置為一些默認值。 該文件由Git跟蹤並簽入。由於將使用各種開發人員機器使用不同的值來編輯此文件,因此有沒有辦法讓我告訴Git忽略對此文件的新更改?

我嘗試將文件添加到.gitignore文件,但是由於已跟蹤文件,因此不會忽略該文件。 在其他情況下這還不錯,但是我想知道是否可以在這里做些什么?

我建議對源代碼控制文件的命名與其實際的預期名稱不同。 例如,如果文件通常名為config.json ,則將示例文件命名為config.json.dist並提交該文件。 然后將config.json添加到您的.gitignore文件中。 您的開發人員只需在克隆后簡單地cp config.json.dist config.json ,然后根據需要對其進行編輯,即可進行后續提交,而不必擔心意外更改默認文件或忘記一直打開和關閉某些設置。

您甚至可以編輯代碼以首先搜索config.json ,如果不存在,則退回到config.json.dist 這將使開發人員甚至無需執行復制步驟即可工作。 (這是PHPUnit的工作方式。)

為此,可以使用git update-index --skip-worktree FILE

它與--assume-unchanged相似,但是與--assume-unchanged不同, 它不僅僅是一個不可預測的性能技巧

要取消--skip-worktree效果並取消設置標志,請使用--no-skip-worktree

缺點

  • 該標志僅用於本地存儲庫,不能推送到遠程。 因此,每個需要忽略文件的克隆都應手動執行。
  • 當切換到另一個分支或使用git pull時,您可能會遇到沖突。 更多詳細信息

您可以使用git update-index --assume-unchanged <file>

如果要再次跟蹤它,請使用git update-index --no-assume-unchanged <file>

暫無
暫無

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

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