簡體   English   中英

從遠程拉取時保留 git 中的本地更改

[英]Keeping local changes in git while pulling from remote

假設我正在開發一個共享倉庫。 在那個 repo 中有一個defaults.js文件,它指定了各種 URL。 當我在本地克隆 repo 時,我更改了其中一些 URL 以指向在本地運行的服務。 如何將這些 URL 設置為本地值,同時從遠程獲取新更新?

到目前為止,我一直很高興(天真?)使用這里描述的方法

git stash
git pull
git stash pop

但是在今天嘗試這個時,我收到了一個

CONFLICT(內容):在 config/defaults.js 中合並沖突

由於我們是變基而不是合並,我不想開始創建混亂的合並,尤其是對於如此微不足道的事情。 所以我只是重置,擺脫了我的更改,以便本地鏡像遠程,然后再次手動更改 URL。 顯然,我不想繼續這樣做,首選方法是什么?

上面鏈接中的解決方案簡單地說

git checkout --theirs -- defaults.js

因為你知道你放入藏匿處的就是你想要的。 但就我而言,情況並非如此,我確實希望將我的和他們的合並,而不是實際合並。

只要您維護的狀態不同於您不希望提交的origin狀態,您就會遇到這樣的沖突,而您已經嘗試的事情幾乎是修復它的最簡單方法。

有幾種更簡潔的方法可以很好地解決這個問題,避免與 Git 混淆:

  1. 如果您可以使用環境變量,請將defaults.js為更喜歡這些變量並回退到文件中包含的另一個默認值。 然后,您可以設置與您的同事或制作不同的本地 ENV。

  2. 設置一個優於defaults.jslocal-defaults.js文件(批發或合並選項),並將其添加到.gitignore這樣它就不會被提交。 然后每個人都可以使用他們需要的任何覆蓋來保留自己的文件。

這兩個都是代碼更改 - 實際上是一個新功能 - 但是隨着您的團隊規模的增長,每個人都會很高興他們可以進行適當的自定義,而無需通過stash舞蹈進行斗爭。

暫無
暫無

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

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