0 前言
為了能在任意 Git 項(xiàng)目上協(xié)作,我們需要知道如何管理自己的遠(yuǎn)程倉庫。 遠(yuǎn)程倉庫是指托管在因特網(wǎng)或其他網(wǎng)絡(luò)中我們項(xiàng)目的版本庫。 我們可以有好幾個(gè)遠(yuǎn)程倉庫,通常有些倉庫對(duì)我們只讀,有些則可以讀寫。 與他人協(xié)作涉及管理遠(yuǎn)程倉庫以及根據(jù)需要推送或拉取數(shù)據(jù)。 管理遠(yuǎn)程倉庫包括了解如何添加遠(yuǎn)程倉庫、移除無效的遠(yuǎn)程倉庫、管理不同的遠(yuǎn)程分支并定義它們是否被跟蹤等等。
Note | 遠(yuǎn)程倉庫可以在我們的本地主機(jī)上 我們完全可以在一個(gè)“遠(yuǎn)程”倉庫上工作,而實(shí)際上它在我們本地的主機(jī)上。 詞語“遠(yuǎn)程”未必表示倉庫在網(wǎng)絡(luò)或互聯(lián)網(wǎng)上的其它位置,而只是表示它在別處。 在這樣的遠(yuǎn)程倉庫上工作,仍然需要和其它遠(yuǎn)程倉庫上一樣的標(biāo)準(zhǔn)推送、拉取和抓取操作。 |
---|
1 查看遠(yuǎn)程倉庫
如果想查看我們已經(jīng)配置的遠(yuǎn)程倉庫服務(wù)器,可以運(yùn)行 git remote
命令。 它會(huì)列出我們指定的每一個(gè)遠(yuǎn)程服務(wù)器的簡(jiǎn)寫。 如果我們已經(jīng)克隆了自己的倉庫,那么至少應(yīng)該能看到 origin ——這是 Git 給你克隆的倉庫服務(wù)器的默認(rèn)名字:
$ git clone https://github.com/schacon/ticgit
$ cd ticgit
$ git remote
我們也可以指定選項(xiàng) -v
,會(huì)顯示需要讀寫遠(yuǎn)程倉庫使用的 Git 保存的簡(jiǎn)寫與其對(duì)應(yīng)的 URL。
$ git remote -v
如果我們的遠(yuǎn)程倉庫不止一個(gè),該命令會(huì)將它們?nèi)苛谐觥?/p>
2 添加遠(yuǎn)程倉庫
運(yùn)行 git remote add <shortname> <url>
添加一個(gè)新的遠(yuǎn)程 Git 倉庫,同時(shí)指定一個(gè)方便使用的簡(jiǎn)寫:
$ git remote
$ git remote add pd https://github.com/paulboone/ticgit
$ git remote -v
現(xiàn)在我們可以在命令行中使用字符串 pb
來代替整個(gè) URL。 例如,如果我們想拉取 Paul 的倉庫中有但我們沒有的信息,可以運(yùn)行 git fetch pb
:
$ git fetch pd
3 從遠(yuǎn)程倉庫中抓取與拉取
從遠(yuǎn)程倉庫中獲得數(shù)據(jù),可以執(zhí)行:
$ git fetch <remote>
如果我們使用 clone
命令克隆了一個(gè)倉庫,命令會(huì)自動(dòng)將其添加為遠(yuǎn)程倉庫并默認(rèn)以 “origin” 為簡(jiǎn)寫。 所以,git fetch origin
會(huì)抓取克?。ɑ蛏弦淮巫ト。┖笮峦扑偷乃泄ぷ?。 必須注意 git fetch
命令只會(huì)將數(shù)據(jù)下載到我們的本地倉庫——它并不會(huì)自動(dòng)合并或修改我們當(dāng)前的工作。 當(dāng)準(zhǔn)備好時(shí)我們必須手動(dòng)將其合并入我們的工作。
如果我們的當(dāng)前分支設(shè)置了跟蹤遠(yuǎn)程分支, 那么可以用 git pull
命令來自動(dòng)抓取后合并該遠(yuǎn)程分支到當(dāng)前分支。 這或許是個(gè)更加簡(jiǎn)單舒服的工作流程。默認(rèn)情況下,git clone
命令會(huì)自動(dòng)設(shè)置本地 master 分支跟蹤克隆的遠(yuǎn)程倉庫的 master
分支(或其它名字的默認(rèn)分支)。 運(yùn)行 git pull
通常會(huì)從最初克隆的服務(wù)器上抓取數(shù)據(jù)并自動(dòng)嘗試合并到當(dāng)前所在的分支。
4 推送到遠(yuǎn)程倉庫
當(dāng)我們想分享我們的項(xiàng)目時(shí),必須將其推送到上游。 這個(gè)命令很簡(jiǎn)單:git push <remote> <branch>
。 當(dāng)我們想要將 master
分支推送到 origin
服務(wù)器時(shí)(再次說明,克隆時(shí)通常會(huì)自動(dòng)幫我們?cè)O(shè)置好那兩個(gè)名字), 那么運(yùn)行這個(gè)命令就可以將我們所做的備份到服務(wù)器:
$ git push origin master
只有當(dāng)我們有所克隆服務(wù)器的寫入權(quán)限,并且之前沒有人推送過時(shí),這條命令才能生效。 當(dāng)我們和其他人在同一時(shí)間克隆,他們先推送到上游然后我們?cè)偻扑偷缴嫌危覀兊耐扑途蜁?huì)毫無疑問地被拒絕。 我們必須先抓取他們的工作并將其合并進(jìn)我們的工作后才能推送。
5 查看某個(gè)遠(yuǎn)程倉庫
如果想要查看某一個(gè)遠(yuǎn)程倉庫的更多信息,可以使用 git remote show <remote>
命令。 如果想以一個(gè)特定的縮寫名運(yùn)行這個(gè)命令,例如 origin
,會(huì)得到像下面類似的信息:
$ git remote show origin
6 遠(yuǎn)程倉庫的重命名與移除
我們可以運(yùn)行 git remote rename
來修改一個(gè)遠(yuǎn)程倉庫的簡(jiǎn)寫名。 例如,想要將 pb
重命名為 paul
,可以用 git remote rename
這樣做:
$ git remote rename pd paul
$ git remote
注意: 這同樣也會(huì)修改我們所有遠(yuǎn)程跟蹤的分支名字。 那些過去引用 pb/master
的現(xiàn)在會(huì)引用 paul/master
。
如果因?yàn)橐恍┰蛳胍瞥粋€(gè)遠(yuǎn)程倉庫——我們已經(jīng)從服務(wù)器上搬走了或不再想使用某一個(gè)特定的鏡像了, 又或者某一個(gè)貢獻(xiàn)者不再貢獻(xiàn)了——可以使用 git remote remove
或 git remote rm
:
$ git remote remove paul
$ git remote
文章來源:http://www.zghlxwxcb.cn/news/detail-806185.html
注意: 一旦使用這種方式刪除了一個(gè)遠(yuǎn)程倉庫,那么所有和這個(gè)遠(yuǎn)程倉庫相關(guān)的遠(yuǎn)程跟蹤分支以及配置信息也會(huì)一起被刪除。文章來源地址http://www.zghlxwxcb.cn/news/detail-806185.html
到了這里,關(guān)于Git教程學(xué)習(xí):06 遠(yuǎn)程倉庫的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!