這是一個關于我們的 C# Xamarin 項目的 git 問題。我們在 Assets 文件夾中有幾個文件,這些文件通過預構建事件命令復制到那里。編譯器不直接使用這些文件,但如果它們丟失,我們的 CI 服務器將無法構建。所有開發機器上的它們的版本可能不同,所以每當我們在我們的機器上構建時,文件都會被復制進來,git 會顯示它們已更改這很煩人,因為對這些文件的更改真的無關緊要,所以我們永遠不需要提交它們。我想忽略對這些文件的更改,但不將它們從存儲庫中刪除。如果按照上述方式刪除它們,CI 將失敗。如果我直接“刪除并停止跟蹤”它們,它們將在 CI 服務器拉出時被刪除。從其他堆棧溢出問題我嘗試了這兩個:git update-index --assume-unchanged [path]git update-index --skip-worktree [path]兩者都成功隱藏了文件更改,但都存在以下問題。當我嘗試切換分支時,它告訴我必須在切換之前丟棄未暫存的更改并列出這些文件。然后我輸入:git reset -- .git checkout .在我反轉 update-index 命令之前,兩者都無法放棄對文件的更改,只有這樣我才能放棄更改并被允許切換分支。有針對這個的解決方法嗎?我們是在做一些跳出框框的事情還是完全錯了?
1 回答

哈士奇WWW
TA貢獻1799條經驗 獲得超6個贊
這是一個非常普遍的問題。
有時是眾所周知的custom.js
, custom.min.js
, custom.css
,custom.min.css
等。其他時候,它是另一種“源文件”,為了使軟件能夠工作,不知何故需要“存在”,但我們并不真正關心其中的內容。
聽起來很熟悉?它被稱為編譯文件?,F在我知道它們實際上不是編譯文件——它們是源文件。但是對于所有意圖和用途,這些文件與編譯文件幾乎相同。它們并不是你真正關心的任何東西,寧愿計算機只是想出如何維護它們。
為什么將它們與實際編譯的文件區別對待?您提到每次構建時都會生成預構建事件命令。這實際上使它們成為構建過程的一部分。
解決方案相當簡單。在 CI 服務器上包含生成文件的預構建事件,在實際編譯之前,并將文件添加到.gitignore
文件中。
- 1 回答
- 0 關注
- 180 瀏覽
添加回答
舉報
0/150
提交
取消