git獲取遠端伺服器的指定分支

2021-08-20 12:53:17 字數 2733 閱讀 4348

進入新公司,公司伺服器上有online為線上版本,開發版本預設的為master,本地clone的開發版為master,公司用的git 自動部署(puh後伺服器自動更新了**...這個有很多配置教程,這裡就不贅述啦),

本地開發分支master,一般流程是 合併到online分支後,把online push到遠端分支....這個是流程ok不說了

場景是這樣的:

本地master

執行 checkout -b online後

git push origin online  發現許可權不夠....囧事發生了,我以為是賬號許可權受控....特意去問cto......

好吧,我這裡操作是不對滴(按照以往的部署方式不能習慣性的用在新公司..警惕吧)

git pull 操作就可以從遠端庫中獲取某個分支的更新,再與本地指定的分支進行自動merge(即使本地不存在這個分支)

完整格式是:

$ git pull 《遠端庫名》 《遠端分支名》:《本地分支名》
比如,取回遠端庫中的online分支,與本地的online分支進行merge,要寫成:

git pull origin online:online
如果是要與本地當前分支merge,則冒號後面的《本地分支名》可以不寫

git pull origin online
通常,git會將本地庫分支與遠端分支之間建立一種追蹤關係。比如,在git clone的時候,所有本地分支預設與遠端庫的同名分支建立追蹤關係。也就是說,本地的master分支自動追蹤origin/master分支。因此,如果當前處於本地online分支上,並且本地online分支與遠端的online分支有追蹤關係,那麼遠端的分支名可以省略:

比如,取回遠端庫中的online分支,與本地的online分支進行merge,要寫成:

git pull origin
其實,git pull 命令等同於先做了git fetch ,再做了git merge。即:

git fetch origin online

git checkout online

git merge origin/online

造成我的錯誤在於我本地使用checkout -b online 是建立的新onlne分支,而與伺服器online根本不算是同乙個分支,所以要從服務端拉取,切記吧

再次完整總結這次教訓:

預設,如果git專案只有乙個分支,就是master,我們當然可以在本地建立多個分支,並推送到遠端git管理平台上,或者將遠端git管理平台上的其他分支拉取到自己電腦上。

一、檢視本地已有的分支

進入到專案根目錄,開啟命令列/終端,輸入指令,將會顯示該項目的本地的全部分支,其中、當前分支的前面有*號。

git branch
二、本地檢出乙個新的分支並推送到遠端倉庫

(一).建立本地分支

git checkout -b 新分支名
執行該指令後,會在本地建立乙個新分支,該分支是從當前分支上檢出的,所以所有檔案內容都和當前分支一模一樣,這是正常的。建立成功後,將自動切換至新分支上。

比如我要建立乙個名為dev1的新分支:

git checkout -b dev1
此時,再執行git branch檢視當前本地所有分支,就會看到多了個分支:dev1.

(二).推送本地分支到遠端倉庫

git push --set-upstream origin 分支名

三、將遠端git倉庫裡的指定分支拉取到本地(本地不存在的分支,今天的囧事就發生在這個環節)

當我想從遠端倉庫里拉取一條本地不存在的分支時:

git checkout -b 本地分支名 origin/遠端分支名
這個將會自動建立乙個新的本地分支,並與指定的遠端分支關聯起來。

例如遠端倉庫裡有個分支dev2,我本地沒有該分支,我要把dev2拉到我本地:

若成功,將會在本地建立新分支dev2,並自動切到dev2上。

fatal: cannot update paths and switch to branch 'dev2' at the same time.

did you intend to checkout 'origin/dev2' which can not be resolved as commit?

表示拉取不成功。上面的我需要先執行

git fetch
然後再執行

git checkout -b 本地分支名 origin/遠端分支名
即可。

其實這裡就是我上面描述的,不用fetch,直接 git pull origin dev2:dev2 乙個命令可以達到同等效果.

提示已經是最新的了...

無論從事什麼行業,只要做好兩件事就夠了,乙個是你的專業、乙個是你的人品,專業決定了你的存在,人品決定了你的人脈,剩下的就是堅持,用善良專業和真誠贏取更多的信任。不忘初心 方得始終!

git獲取遠端伺服器的指定分支

昨天糗大了.進入新公司,公司伺服器上有online為線上版本,開發版本預設的為master,本地clone的開發版為master,公司用的git 自動部署 puh後伺服器自動更新了 這個有很多配置教程,這裡就不贅述啦 本地開發分支master,一般流程是 合併到online分支後,把online p...

git獲取遠端分支

1 git fetch 將遠端分支資訊同步到本地 2 git branch a 檢視分支資訊 3 git checkout b branch name origin branch name 或者 git checkout t origin branch name。使用 t引數預設在本地建立乙個和遠端...

git 獲取遠端分支

另一哥們將分支push到庫中,我怎麼獲取到他的分支資訊呢?如果安裝了git客戶端,直接選擇fetch一下,就可以獲取到了。如果用命令列,執行 git fetch,可以將遠端分支資訊獲取到本地,再執行 git checkout b local branchname origin remote bran...