例如有一個專案的master分支下有一個通用類A我建立了一個新的分支dev進行開發(本地存在2個分支,1個是master,1個是dev),第二天master分支的類A程式碼更新了而我如果拉取dev分支的話,A依然是舊版的,如果拉取master分支的檔案到本地dev的話,本地的master和dev就會顯示合併了,請問要如何解決呢?
如果拉取master分支的檔案到本地dev的話,本地的master和dev就會顯示合併了,請問要如何解決呢?
當然不要把 master 拉取到 dev 了,這樣本質上就是 fetch + merge 操作,所以這是必然的。
解決的方法其實很多,我比較喜歡用rebase,也就是先pull master,然後在rebase,也就是先 pull master,然后在 dev 分支下 rebase master。这样做就等于把 dev 分支重新“落户”在 master 分支的最新节点(即:HEAD)上——当然,这个过程和 merge masterdev
rebase
pull master
rebase master
dev
master
merge master
merge master 一樣會出現衝突解決(取決於差異的情況),但它不會合併兩個分支。 另外這個過程應該經常做(如果 master 經常更新的話);同時如果 master 就是你們用來部署的分支,那最好不要經常更新它,否則出錯了回滾起來討厭得很。 🎜
你可以checkout其他commit中的一個檔案
git checkout origin/master -- 那个文件
當然不要把 master 拉取到 dev 了,這樣本質上就是 fetch + merge 操作,所以這是必然的。
解決的方法其實很多,我比較喜歡用
分支下rebase
,也就是先pull master
,然後在rebase
,也就是先pull master
,然后在 dev 分支下rebase master
。这样做就等于把dev
分支重新“落户”在master
分支的最新节点(即:HEAD)上——当然,这个过程和merge master
devrebase master
。這樣做就等於把dev
分支重新「落戶」在master
分支的最新節點(即:HEAD)上-當然,這個過程和merge master 一樣會出現衝突解決(取決於差異的情況),但它不會合併兩個分支。
另外這個過程應該經常做(如果 master 經常更新的話);同時如果 master 就是你們用來部署的分支,那最好不要經常更新它,否則出錯了回滾起來討厭得很。 🎜
你可以checkout其他commit中的一個檔案