溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Git中分支是什么

發(fā)布時(shí)間:2020-08-12 15:24:32 來源:億速云 閱讀:369 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下Git中分支是什么,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

    1. 拉取推送分支:

    git branch 分支名 : 創(chuàng)建分支
    git checkout 分支名 : 切換分支
    git checkout –b 分支名 : 創(chuàng)建并切換到新分支
   本地拉取分支后推送到遠(yuǎn)程:
        git push <遠(yuǎn)程主機(jī)名> <本地分支名>:<遠(yuǎn)程分支名>
        【注意】直接git push 會(huì)將當(dāng)前本地分支推送到對應(yīng)遠(yuǎn)端同名分支,如果遠(yuǎn)端沒有同名分支則會(huì)新建同名分支
  【舉例】git push 和git push origin branchTest是等效的,都是將本地branchTest分支推送到遠(yuǎn)端

2. 分支切換:

        舉例的切換都是從branchTest切master分支

       【場景1】分支切換后提示: Your local changes to the following files would be overwritten by checkout

Git中分支是什么 

      【原因】如同push出現(xiàn)沖突問題一樣,該切換問題是因?yàn)楫?dāng)前branchTest修改代碼后,和master代碼沖突
                     比如,master的File1未666666、777777兩行;branchTest修改后把777777刪掉了,切換的時(shí)候就會(huì)出現(xiàn)該問題;
                     如果branchTest修改時(shí),不對master的代碼做改動(dòng),即單純的添加888888,則不會(huì)出現(xiàn)該問題。
       【解決1】Force Checkout 會(huì)保留原汁原味的master代碼,分支修改的代碼不會(huì)出現(xiàn)再master
                      Smart Checkout選擇讓你手動(dòng)解決沖突,可參考:鏈接的第4點(diǎn)
                      Don't Checkout 就是讓你放棄切換分支
       【解決2】Don't Checkout放棄切換,然后commit一下,再切換,就不會(huì)有如上問題
                      但這樣會(huì)導(dǎo)致本地存在多個(gè)commit,到時(shí)還得合并多個(gè)本地commit

3. 在錯(cuò)誤的分支修改了代碼:

       【場景】在branchTest修改完代碼后,發(fā)現(xiàn)分支錯(cuò)了,應(yīng)該是要在master是修改的
       【解決1】未commit情況下,切換master分支,如上解決沖突;
                       commit了的話,可以reset后再切換;當(dāng)然如果改動(dòng)不大,可以切換后重新修改吧,
       【解決2】如果能確定push前遠(yuǎn)端兩個(gè)分支的代碼是一樣的, 那么可以git push origin branchTest:master將branchTest提交的代碼推送到遠(yuǎn)端commit分支
       【解決3】 如果push前遠(yuǎn)端兩個(gè)分支的代碼不一樣,會(huì)push rejected
             3-3-a. pull遠(yuǎn)端master代碼到當(dāng)前分支,會(huì)提示沖突,手動(dòng)解決沖突

Git中分支是什么

            3-3-b. 代碼重新commit
               手動(dòng)解決沖突后,可以看見log中,之前提交的commit已經(jīng)斷開了,所以需要重新提交commit

Git中分支是什么

              重新commit后,會(huì)自動(dòng)合并回來,這樣就可以git push origin branchTest:master

Git中分支是什么

       【建議】修改代碼前明確分支,提交代碼前先拉取代碼,有沖突則解決沖突。

看完了這篇文章,相信你對Git中分支是什么有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI