背景
- 在實踐過程中,發現git常被用于如下三個場景中,總結并記錄下來。
過程
- 遠端已經有某個分支了,本地也需要一個分支與之對應上
-
假如遠端已經有了一個dev分支,如何在本地得到一個名稱是dev的分支?
git checkout –b dev origin/dev
-
如何讓本地的dev分支和遠端的origin/dev分支關聯上來?
git branch --set-upstream-to=origin/dev
- 遠端沒有某個分支,需要重新建立一個分支
-
本地建立一個分支,并切換到新建立的分支上
git checkout –b feat-addUser
-
push到遠端廠庫中去
git push origin feat-addUser
-
本地分支與遠端分支關聯上關系
可以先執行:git pull, 看它給出的提示資訊。
git branch --set-upstream-to=origin/feat-addUser
-
合并分支過程中發現沖突處理失敗,怎麼應對?
放棄合并的内容,回退到合并以前的内容
- 切換到需要回退的分支上。git checkout dev
- 查詢需要回退的版本号。git reflog
- 執行回退操作。git reset –hard f82cfd2 ,其中這個f82cfd2是commit id
- 至于怎麼知道某個版本号是合并之前的,可以看上次部署的commit id是什麼,一般在gitlab或者其他代碼托管平台中的pipeline中的ci/cd就可以看見。
放棄合并的内容,重新clone項目
還有一種解決辦法:就是不要原來的項目了,重新clone下來,然後切換到需要發起合并操作的分支,然後再一次合并。細節:有沖突的時候,是不能push到遠端的。
-
回退到上一個送出的版本
git reset --hard HEAD~1
小結
- 記錄git常使用的一些場景和解決辦法。