[英]How to ignore Git changed files?
我目前正在使用此設置。 我有 3 個更改的文件,其中主要包含環境變量,例如 Jwt 令牌、雲托管變量等。這些更改主要是這樣的:空字符串 --> 我的環境變量
我永遠不會將它們包含在提交中,因為顯然,我們團隊的每個成員都有它們彼此不同。
但這在我的工作流程中很煩人。 我無法永久存儲它們,因為我希望這 3 個文件中的更改會影響我的本地應用程序。 每次切換分支時,我都必須將它們存儲起來,然后將它們stash pop
起來。
不知何故,我希望 Git 假設它們在我的本地存儲庫的每個分支中都已更改,而不會一直保持它們處於未暫存狀態......即使我更改了文件,它們也不會被跟蹤。
謝謝你。
您可以使用從索引中取消暫存文件
git 重置 HEAD -- path/to/file
就像 git add 一樣,您可以通過目錄等遞歸地取消暫存文件,因此要一次取消暫存所有內容,請從存儲庫的根目錄運行:
git 復位 HEAD --。
此外,為了將來參考,git 狀態的 output 將告訴您將文件從一個 state 移動到另一個所需的命令。
你可以告訴 git 它應該“假設”文件沒有改變。
git update-index --assume-unchanged some_file.txt
這只是設置一個標志,告訴 git
當“假設不變”位打開時,用戶承諾不更改文件並允許 Git 假設工作樹文件與索引中記錄的內容匹配。
您可以取消設置標志
git update-index --no-assume-unchanged some_file.txt
編輯
這個 update-index 選項與簡單地取消暫存它們並保持它們未暫存有什么不同? 無論如何,非常感謝。
設置該標志后,路徑將不會顯示為已修改的 git 狀態。 對該路徑的更改將被忽略。 如果您取消暫存更改,則工作副本將顯示為已修改,您可能會意外添加並提交它。 例如
git init test_repo
cd test_repo
cat << EOF > .credentials
# credentials template file
user=
pass=
EOF
git add .credentials
git commit -m 'Credentials template file added'
當您現在編輯.credentials
文件時,它將以 git 狀態顯示為已修改。
git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .credentials
no changes added to commit (use "git add" and/or "git commit -a")
但是,如果您告訴 git 假設文件未更改,它將被忽略。
git update-index --assume-unchanged .credentials
git status
On branch master
nothing to commit, working tree clean
PS:最好將這些文件添加到.gitignore
然后永遠不要提交,即使是模板。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.