簡體   English   中英

一旦文件已經在Git中被跟蹤,是否有可能忽略它?

[英]Is it possible to ignore a file once it is already tracked in Git?

是否可以一次添加一個虛擬配置文件(以便其他開發人員可以看到該配置文件的外觀),然后使用.gitignore文件將其忽略。 然后用可用的配置細節替換虛擬配置細節,這樣我就可以繼續開發項目並繼續提交更改了? 但是原始的虛擬配置文件在Github上會保持不變嗎?

這是我嘗試的方法:

  • 在Github上創建存儲庫
  • 創新本地回購協議
  • 拉遠程回購
  • 使用Configuration.java將本地倉庫推送到github(包含虛擬細節)
  • 將Configuration.java添加到.gitignore文件
  • 將本地倉庫推送到github
  • 向Configuration.java添加正確的詳細信息
  • 將本地倉庫推送到github

但是會跟蹤對configuration.java的更改,因此這是行不通的。

如果您只是擔心忽略本地開發git update-index --assume-unchanged <file> ,可以使用git update-index --assume-unchanged <file>來忽略對該文件的任何更改。 有關更多詳細信息,請參見http://blog.pagebakers.nl/2009/01/29/git-ignoring-changes-in-tracked-files/

您提到:

  1. 使用Configuration.java將本地倉庫推送到github(包含虛擬細節)
  2. 將Configuration.java添加到.gitignore文件

問題是,gitignore僅適用於尚未被跟蹤的文件,並且由於您已提交,因此gitignore的工作為時已晚。 引用gitignore文檔:

gitignore文件指定Git應該忽略的故意未跟蹤的文件。 Git已經跟蹤的文件不受影響;

如果您想將自己的工作提交到公開可見的倉庫中,但又想隱藏諸如連接字符串/密碼等敏感信息,請先提交一個虛擬文件。 例如,提交如下內容:

public class Configuration {
    public static final String USERNAME = "someUsername";
    public static final String PASSWORD = "passwordHere";
}

然后,告訴git停止跟蹤該文件上的更改,因此您可以在本地修改值,但不會提示您提交這些更改。

git update-index --assume-unchanged path/to/file.txt

有兩點要指出:

  • 總是檢入一個虛擬的配置文件,不要將其完全遺漏。 如果這樣做,當人們簽出您的項目而文件丟失時,他們將無法編譯該項目! 通過提供一些示例數據來幫助他們。
  • 由於git不再跟蹤該文件,因此,如果您要提交要進行的任何修改,則必須手動滿足該要求(通過github.com進行,或者重新啟用跟蹤,修復它,然后禁用跟蹤再次)。 為此,請使該文件保持相對較小的狀態,只是變量,不要在其中放置可能需要不斷更新的邏輯。

暫無
暫無

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

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