git同步遠(yuǎn)程倉(cāng)庫(kù)分支

git命令

1.何謂同步遠(yuǎn)程分支?有下面幾種情況,

1.本地有新分支,遠(yuǎn)程倉(cāng)庫(kù)沒有。
    
2.遠(yuǎn)程倉(cāng)庫(kù)有新分支,本地沒有。

3.本地刪除了分支,遠(yuǎn)程也想刪除。

4.遠(yuǎn)程刪除了分支,本地也想刪除。

第一種情況很好解決,將本地分支推送到遠(yuǎn)程倉(cāng)庫(kù)即可。

本文主要講解后面幾種情況的解決辦法。


2.第二種情況:遠(yuǎn)程倉(cāng)庫(kù)有新分支,本地沒有。

這在之前我先介紹幾個(gè)命令。

1.將某個(gè)遠(yuǎn)程主機(jī)的更新,全部取回本地:git fetch

2.查看遠(yuǎn)程分支:git branch -a

3.查看本地分支:git branch

4.切換分支:git checkout 分支

熟悉了以上命令,接下來我們通過一個(gè)例子來講解第二種情況的解決辦法。

假如我本地有個(gè)git倉(cāng)庫(kù),別人推送了一個(gè)新分支到遠(yuǎn)程倉(cāng)庫(kù),我要獲取這個(gè)分支到本地,該怎么辦?

1.我需要git branch查看一下本地分支,再git branch -a查看一下遠(yuǎn)程分支,對(duì)比下,遠(yuǎn)程存在哪些本地沒有的新分支。但發(fā)現(xiàn),本地和遠(yuǎn)

程的一樣。奇怪,在遠(yuǎn)程倉(cāng)庫(kù)(gitlab/github)明明看到了新分支啊。 

原來現(xiàn)在本地上的現(xiàn)在的遠(yuǎn)程分支記錄是克隆倉(cāng)庫(kù)時(shí)當(dāng)時(shí)的分支記錄。所以我需要

1.首先將某個(gè)遠(yuǎn)程主機(jī)的更新,全部取回本地:git fetch

2.再次查看遠(yuǎn)程分支:git branch -a 發(fā)現(xiàn)遠(yuǎn)程的分支已經(jīng)可以看見了。

3.然后拉取遠(yuǎn)程分支到本地:git checkout -b 遠(yuǎn)程分支名 origin/遠(yuǎn)程分支名

注:直接克隆整個(gè)倉(cāng)庫(kù),可以直接使用git checkout 分支名切換到分支。因?yàn)榭寺r(shí)候已經(jīng)有遠(yuǎn)程所有的分支記錄。但若之前已經(jīng)克隆過,后來其他電腦新push一個(gè)分支,此時(shí)是無法切換到新分支的。使用上述命令可拉取最新分支(原理是在本地新建一個(gè)分支和遠(yuǎn)程分支關(guān)聯(lián)起來)


3.第三種情況:本地刪除了分支,遠(yuǎn)程也想刪除。

這在之前我先介紹幾個(gè)命令。

1.刪除遠(yuǎn)程分支: git push origin -d 分支名

2.刪除本地分支: git branch -d 分支名

熟悉了以上命令,接下來我們通過一個(gè)例子來講解第三種情況的解決辦法。

假如我在本地想要?jiǎng)h除某個(gè)分支,我也想把遠(yuǎn)程倉(cāng)庫(kù)的這個(gè)分支也要?jiǎng)h掉怎么辦?

1.使用git branch -d 分支名來刪除本地分支。
2.使用git push origin -d 分支名直接來刪除遠(yuǎn)程分支。在次使用git branch -a,發(fā)現(xiàn)分支已經(jīng)不存在了。

或者
1.使用git branch -d 分支名來刪除本地分支。
2.最簡(jiǎn)單的解決辦法就是直接到gitlab/github進(jìn)行刪除.

假如我只想把遠(yuǎn)程的刪除掉怎么辦?

1.使用git push origin -d 分支名直接來刪除遠(yuǎn)程分支。此時(shí)刪除的只是遠(yuǎn)程的分支,本地仍然存在

或者

1.直接到gitlab/github進(jìn)行刪除.

4.第四種情況:遠(yuǎn)程刪除了分支,本地也想刪除。。

這在之前我先介紹幾個(gè)命令。

1.查看遠(yuǎn)程分支和本地分支的對(duì)應(yīng)關(guān)系:git remote show origin  

2.刪除遠(yuǎn)程已經(jīng)刪除過的分支:git remote prune origin

熟悉了以上命令,接下來我們通過一個(gè)例子來講解第四種情況的解決辦法。

假如我直接到gitlab/github刪除了某個(gè)分支,我在本地使用git branch -a查看遠(yuǎn)程分支,依然存在并且可以切換使用。我本地也想把遠(yuǎn)程分支記錄刪除怎么辦?

1.git branch -a查看遠(yuǎn)程分支,紅色的是本地遠(yuǎn)程遠(yuǎn)程分支記錄。

2.執(zhí)行下面命令查看遠(yuǎn)程倉(cāng)庫(kù)分支和本地倉(cāng)庫(kù)的遠(yuǎn)程分支記錄的對(duì)應(yīng)關(guān)系:

  git remote show origin  

3.會(huì)看到:
 
 refs/remotes/origin/遠(yuǎn)程倉(cāng)庫(kù)已經(jīng)刪除的分支名              stale (use 'git remote prune' to remove)

 其中:

 Local refs configured for 'git push':  命令下面的分支是本地倉(cāng)庫(kù)的遠(yuǎn)程分支記錄中仍存在的分支,但遠(yuǎn)程倉(cāng)庫(kù)已經(jīng)不存在。

4.輸入git remote prune origin來刪除遠(yuǎn)程倉(cāng)庫(kù)已經(jīng)刪除過的分支

5.驗(yàn)證 git branch -a

  此時(shí)可以看到本地遠(yuǎn)程分支記錄已經(jīng)和遠(yuǎn)程倉(cāng)庫(kù)保持一致了。

實(shí)際測(cè)試截圖

image
image
image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容