如何拉取git遠(yuǎn)程倉(cāng)庫(kù)的某個(gè)指定分支
本地分支默認(rèn)與遠(yuǎn)程同名分支建立追蹤關(guān)系。git clone會(huì)克隆一個(gè)版本庫(kù)到本地。使用-b <name>或--branch <name>參數(shù),它不會(huì)將新創(chuàng)建的HEAD指向克隆倉(cāng)庫(kù)的HEAD指向的分支(master分支),而是指向name分支。例如下面命令是拉取遠(yuǎn)程倉(cāng)庫(kù)的develop分支。
拉取到本地后,通過(guò)git branch -a可以看到,當(dāng)前分支是develop分支。
git fetch會(huì)下載你遠(yuǎn)程倉(cāng)庫(kù)的對(duì)象和分支,例如$ git fetch origin會(huì)從遠(yuǎn)程refs/heads/命名空間中拷貝所有的分支,并將其拷貝到本地的refs/remotes/origin/命名空間。
上面的例子是你已經(jīng)關(guān)聯(lián)了一個(gè)遠(yuǎn)程倉(cāng)庫(kù),但是比如你第一次沒(méi)有使用git clone來(lái)克隆一個(gè)遠(yuǎn)程倉(cāng)庫(kù)時(shí),使用git fetch <repository>命令下載repository的內(nèi)容。
第一次執(zhí)行這條命令時(shí),如果報(bào)這樣的錯(cuò)誤:
那是因?yàn)槟氵€沒(méi)有初始化本地的倉(cāng)庫(kù),所以需要先使用git init命令進(jìn)行初始化。
在git fetch執(zhí)行成功后,如果你打開(kāi)目錄。沒(méi)有發(fā)現(xiàn)遠(yuǎn)程倉(cāng)庫(kù)中的文件,那么可能的原因是你還沒(méi)有切換到本地的分支上。利用git checkout <branch>,即可切換到本地的branch分支上。這時(shí)就可以看到和遠(yuǎn)程倉(cāng)庫(kù)branch分支上一樣的內(nèi)容。
默認(rèn)情況下,git fetch下載的分支和遠(yuǎn)程的分支名相同。如果你希望download后本地的分支和遠(yuǎn)程不一樣,那么可以使用下面類似的命令:
執(zhí)行后會(huì)看到:
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.012345678910git pull
git pull命令相當(dāng)于git fetch+ git merge命令。git fetch用于獲取遠(yuǎn)程某個(gè)倉(cāng)庫(kù)的某個(gè)分支,然后git merge會(huì)將拉取的分支與本地分支進(jìn)行合并。
如果你想拉取遠(yuǎn)程倉(cāng)庫(kù)的某個(gè)分支,那么使用git pull <repository> <branch>命令。例如下面的命令會(huì)拉取遠(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分支上,你還需要?jiǎng)?chuàng)建一個(gè)新的分支,然后將這兩者關(guān)聯(lián)起來(lái)。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。