亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Git 忽略對文件的更改,但將其保留在 repo 中

Git 忽略對文件的更改,但將其保留在 repo 中

C#
青春有我 2022-01-15 15:46:56
這是一個關于我們的 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.jscustom.min.jscustom.css,custom.min.css等。其他時候,它是另一種“源文件”,為了使軟件能夠工作,不知何故需要“存在”,但我們并不真正關心其中的內容。

聽起來很熟悉?它被稱為編譯文件?,F在我知道它們實際上不是編譯文件——它們是源文件。但是對于所有意圖和用途,這些文件與編譯文件幾乎相同。它們并不是你真正關心的任何東西,寧愿計算機只是想出如何維護它們。

為什么將它們與實際編譯的文件區別對待?您提到每次構建時都會生成預構建事件命令。這實際上使它們成為構建過程的一部分。

解決方案相當簡單。在 CI 服務器上包含生成文件的預構建事件,在實際編譯之前,并將文件添加到.gitignore文件中。


查看完整回答
反對 回復 2022-01-15
  • 1 回答
  • 0 關注
  • 180 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號