landing_image landing_image landing_image landing_image landing_image landing_image landing_image
portrait

YX.S

成為一個厲害的普通人


 一般在開發時,有 master 以及 develop 分支是很正常的事情

而又有可能因為問題的不同而會修改到不同的分支

例如
開發新功能就在 develop 切分支
修改bug時則是在 master 切分支

因此有時候會造成 develop 和 master 不同步的問題

如果版控的工具是 Bitbucket,則可以利用頁面上的 『Sync now.』來解決

 

但有時候會發生 develop 和 master 衝突的問題

會顯示這樣的內容,告訴你哪個commit造成的

Sync branch

This merge has conflicts that must be resolved before it can be committed.

git checkout 4d17cca8c294

# Note: This will create a detached head! 

git merge remotes/origin/master

 

這時候就必須手動解衝突了~

 

切換到分支


我們把那個 commit 編號複製下來

並切換到那邊

git checkout 4d17cca8c294

更新程式碼的衝突內容


下 pull 

git pull

這時候應該就會看到有衝突的程式碼,將衝突改一改

將目前的commit開新的分支


這時候如果看狀態,會看到顯示這一行

HEAD detached at 4d17cca8

代表目前分之是一個 detached HEAD,並不指向任何HEAD

解決的方式就是將他開一個分支

git checkout -b new_HEAD

這樣,他就有自己的目的地了~

透過 log 也可以看到有新的 commit,已有被指到了

合併回原本的分支


因為這個分支只是我們要用來解衝突用的

這時候就可以將分支切回去原本要解衝突的地方,以 develop 為例

git checkout develop

然後再把它合併

git merge new_HEAD

這時候問題就解決了~可以直接跟心

git push

然後回到 Bitbucket 上面看

也就同步好了~

刪除不需要的分支


因為剛剛的分支只是暫時用來解衝突的

在本機刪除,一切就搞定了

git branch -D new_HEAD