博客專欄

        EEPW首頁 > 博客 > 如何拉取git遠(yuǎn)程倉庫的某個指定分支

        如何拉取git遠(yuǎn)程倉庫的某個指定分支

        發(fā)布人:電子禪石 時間:2020-09-23 來源:工程師 發(fā)布文章
        git clone

        本地分支默認(rèn)與遠(yuǎn)程同名分支建立追蹤關(guān)系。git clone會克隆一個版本庫到本地。使用-b <name>或--branch <name>參數(shù),它不會將新創(chuàng)建的HEAD指向克隆倉庫的HEAD指向的分支(master分支),而是指向name分支。例如下面命令是拉取遠(yuǎn)程倉庫的develop分支。

        $ git clone -b develop git@git.csdn.com:benben/2015test.git1

        拉取到本地后,通過git branch -a可以看到,當(dāng)前分支是develop分支。

        * develop
          remotes/origin/HEAD -> origin/master
          remotes/origin/develop
          remotes/origin/master1234
        git fetch

        會下載你遠(yuǎn)程倉庫的對象和分支,例如$ git fetch origin會從遠(yuǎn)程refs/heads/命名空間中拷貝所有的分支,并將其拷貝到本地的refs/remotes/origin/命名空間。
        上面的例子是你已經(jīng)關(guān)聯(lián)了一個遠(yuǎn)程倉庫,但是比如你第一次沒有使用git clone來克隆一個遠(yuǎn)程倉庫時,使用git fetch <repository>命令下載repository的內(nèi)容。

        $ git fetch git@git.csdn.com:benben/2015test.git1

        第一次執(zhí)行這條命令時,如果報(bào)這樣的錯誤:

        fatal: Not a git repository (or any of the parent directories): .git1

        那是因?yàn)槟氵€沒有初始化本地的倉庫,所以需要先使用git init命令進(jìn)行初始化。
        在git fetch執(zhí)行成功后,如果你打開目錄。沒有發(fā)現(xiàn)遠(yuǎn)程倉庫中的文件,那么可能的原因是你還沒有切換到本地的分支上。利用git checkout <branch>,即可切換到本地的branch分支上。這時就可以看到和遠(yuǎn)程倉庫branch分支上一樣的內(nèi)容。
        默認(rèn)情況下,git fetch下載的分支和遠(yuǎn)程的分支名相同。如果你希望download后本地的分支和遠(yuǎn)程不一樣,那么可以使用下面類似的命令:

        $ git fetch git@git.csdn.com:benben/2015test.git master:localmaster develop:localdevelop1

        執(zhí)行后會看到:


        remote: Enumerating objects: 12422, done.
        remote: Counting objects: 100% (12422/12422), done.
        remote: Compressing objects: 100% (7917/7917), done.
        remote: Total 12422 (delta 4099), reused 12389 (delta 4073)
        Receiving objects: 100% (12422/12422), 20.87 MiB | 1.16 MiB/s, done.
        Resolving deltas: 100% (4099/4099), done.
        From git@git.csdn.com:benben/2015test.git
         * [new branch]      master     -> localmaster
         * [new branch]      develop    -> localdevelop
         * [new tag]         V1.0.0     -> V1.0.012345678910
        git pull

        git pull命令相當(dāng)于git fetch+ git merge命令。git fetch用于獲取遠(yuǎn)程某個倉庫的某個分支,然后git merge會將拉取的分支與本地分支進(jìn)行合并。
        如果你想拉取遠(yuǎn)程倉庫的某個分支,那么使用git pull <repository> <branch>命令。例如下面的命令會拉取遠(yuǎn)程develop分支到本地。


        $ git pull git@git.csdn.com:benben/2015test.git develop
        remote: Enumerating objects: 12396, done.
        remote: Counting objects: 100% (12396/12396), done.
        remote: Compressing objects: 100% (7897/7897), done.
        remote: Total 12396 (delta 4096), reused 12359 (delta 4067)
        Receiving objects: 100% (12396/12396), 20.87 MiB | 1.35 MiB/s, done.
        Resolving deltas: 100% (4096/4096), done.
        From git@git.csdn.com:benben/2015test.git
         * branch            develop    -> FETCH_HEAD
        Checking out files: 100% (14904/14904), done.12345678910

        使用git log FETCH_HEAD可以看到該分支的提交記錄,但是當(dāng)前本地分支還在master分支上,你還需要創(chuàng)建一個新的分支,然后將這兩者關(guān)聯(lián)起來。


        *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。



        關(guān)鍵詞:

        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 恩平市| 鄂托克旗| 璧山县| 囊谦县| 株洲县| 敖汉旗| 田东县| 山阳县| 关岭| 龙井市| 连州市| 兴文县| 乳源| 耿马| 镇安县| 博湖县| 保亭| 千阳县| 防城港市| 遵义市| 四川省| 高青县| 海伦市| 澳门| 钦州市| 新河县| 克什克腾旗| 太仆寺旗| 海晏县| 香格里拉县| 景宁| 庆元县| 延安市| 姚安县| 阜新市| 石狮市| 炎陵县| 枣阳市| 渭南市| 吴旗县| 米林县|