Git(9)-- 遠程倉庫的使用

@[TOC]
超詳細 Git 圖文版小白教程(持續(xù)更新)

為了能在任意 Git 項目上協(xié)作,你需要知道如何管理自己的遠程倉庫。 遠程倉庫是指托管在因特網(wǎng)或其他網(wǎng)絡(luò)中的你的項目的版本庫咪辱。 你可以有好幾個遠程倉庫伙判,通常有些倉庫對你只讀迈嘹,有些則可以讀寫鸟蟹。 與他人協(xié)作涉及管理遠程倉庫以及根據(jù)需要推送或拉取數(shù)據(jù)蜕提。 管理遠程倉庫包括了解如何添加遠程倉庫森书、移除無效的遠程倉庫、管理不同的遠程分支并定義它們是否被跟蹤等等谎势。 在本節(jié)中强霎,我們將介紹一部分遠程管理的技能汰扭。

遠程倉庫可以在你的本地主機上: 你完全可以在一個“遠程”倉庫上工作呕诉,而實際上它在你本地的主機上欲险。詞語“遠程”未必表示倉庫在網(wǎng)絡(luò)或互聯(lián)網(wǎng)上的其它位置,而只是表示它在別處须喂。在這樣的遠程倉庫上工作吁断,仍然需要和其它遠程倉庫上一樣的標(biāo)準(zhǔn)推送、拉取和抓取操作坞生。

1仔役、查看遠程倉庫:git remote

如果想查看你已經(jīng)配置的遠程倉庫服務(wù)器,可以運行 git remote 命令是己。 它會列出你指定的每一個遠程服務(wù)器的簡寫又兵。 如果你已經(jīng)克隆了自己的倉庫,那么至少應(yīng)該能看到 origin ——這是 Git 給你克隆的倉庫服務(wù)器的默認名字:

在這里插入圖片描述

你也可以指定選項 -v卒废,會顯示需要讀寫遠程倉庫使用的 Git 保存的簡寫與其對應(yīng)的 URL沛厨。

在這里插入圖片描述

如果你的遠程倉庫不止一個,該命令會將它們?nèi)苛谐觥?例如摔认,與幾個協(xié)作者合作的俄烁,擁有多個遠程倉庫的倉庫看起來像下面這樣:

$ cd grit
$ git remote -v
bakkdoor  https://github.com/bakkdoor/grit (fetch)
bakkdoor  https://github.com/bakkdoor/grit (push)
cho45     https://github.com/cho45/grit (fetch)
cho45     https://github.com/cho45/grit (push)
defunkt   https://github.com/defunkt/grit (fetch)
defunkt   https://github.com/defunkt/grit (push)
koke      git://github.com/koke/grit.git (fetch)
koke      git://github.com/koke/grit.git (push)
origin    git@github.com:mojombo/grit.git (fetch)
origin    git@github.com:mojombo/grit.git (push)

這表示我們能非常方便地拉取其它用戶的貢獻。我們還可以擁有向他們推送的權(quán)限级野。

2、添加遠程倉庫:git remote add <shortname> <url>

我們在之前的章節(jié)中已經(jīng)提到并展示了 git clone 命令是如何自行添加遠程倉庫的粹胯, 不過這里將告訴你如何自己來添加它蓖柔。 運行 git remote add <shortname> <url> 添加一個新的遠程 Git 倉庫,同時指定一個方便使用的簡寫:

在這里插入圖片描述

現(xiàn)在你可以在命令行中使用字符串 tf 來代替整個 URL风纠。如果你想拉取testfirst 的倉庫中有但你沒有的信息况鸣,可以運行 git fetch tf

在這里插入圖片描述

現(xiàn)在 testfirstmain分支可以在本地通過 tf/main 訪問到——你可以將它合并到自己的某個分支中, 或者如果你想要查看它的話竹观,可以檢出一個指向該點的本地分支镐捧。

3潜索、從遠程倉庫中抓取與拉取:git fetchgit pull

就如剛才所見懂酱,從遠程倉庫中獲得數(shù)據(jù)竹习,可以執(zhí)行:

git fetch <remote>

這個命令會訪問遠程倉庫,從中拉取所有你還沒有的數(shù)據(jù)列牺。 執(zhí)行完成后整陌,你將會擁有那個遠程倉庫中所有分支的引用,可以隨時合并或查看瞎领。

如果你使用 clone 命令克隆了一個倉庫泌辫,命令會自動將其添加為遠程倉庫并默認以 “origin” 為簡寫。 所以九默,git fetch origin 會抓取克抡鸱拧(或上一次抓取)后新推送的所有工作驼修。 必須注意 git fetch 命令只會將數(shù)據(jù)下載到你的本地倉庫——它并不會自動合并或修改你當(dāng)前的工作殿遂。 當(dāng)準(zhǔn)備好時你必須手動將其合并入你的工作。

如果你的當(dāng)前分支設(shè)置了跟蹤遠程分支邪锌, 那么可以用 git pull 命令來自動抓取后合并該遠程分支到當(dāng)前分支勉躺。 這或許是個更加簡單舒服的工作流程。默認情況下觅丰,git clone 命令會自動設(shè)置本地 master 分支跟蹤克隆的遠程倉庫的 master 分支(或其它名字的默認分支)饵溅。 運行 git pull 通常會從最初克隆的服務(wù)器上抓取數(shù)據(jù)并自動嘗試合并到當(dāng)前所在的分支。

4妇萄、推送到遠程倉庫:git push <remote> <branch>

當(dāng)你想分享你的項目時蜕企,必須將其推送到上游。 這個命令很簡單:git push <remote> <branch>冠句。 當(dāng)你想要將 master 分支或main分支推送到 origin 服務(wù)器時(再次說明轻掩,克隆時通常會自動幫你設(shè)置好那兩個名字), 那么運行這個命令就可以將你所做的備份到服務(wù)器:

git push origin mastergit push origin main

只有當(dāng)你有所克隆服務(wù)器的寫入權(quán)限懦底,并且之前沒有人推送過時唇牧,這條命令才能生效。 當(dāng)你和其他人在同一時間克隆聚唐,他們先推送到上游然后你再推送到上游丐重,你的推送就會毫無疑問地被拒絕。 你必須先抓取他們的工作并將其合并進你的工作后才能推送杆查。


在這里插入圖片描述

5扮惦、查看某個遠程倉庫:git remote show <remote>

如果想要查看某一個遠程倉庫的更多信息,可以使用 git remote show <remote> 命令亲桦。 如果想以一個特定的縮寫名運行這個命令崖蜜,例如 origin浊仆,會得到像下面類似的信息:

在這里插入圖片描述

它同樣會列出遠程倉庫的 URL 與跟蹤分支的信息。 這些信息非常有用豫领,它告訴你正處于 main 分支抡柿,并且如果運行 git pull, 就會抓取所有的遠程引用氏堤,然后將遠程 main 分支合并到本地 main 分支沙绝。 它也會列出拉取到的所有遠程引用。

這是一個經(jīng)常遇到的簡單例子鼠锈。 如果你是 Git 的重度使用者闪檬,那么還可以通過 git remote show 看到更多的信息。

$ git remote show origin
* remote origin
  URL: https://github.com/my-org/complex-project
  Fetch URL: https://github.com/my-org/complex-project
  Push  URL: https://github.com/my-org/complex-project
  HEAD branch: master
  Remote branches:
    master                           tracked
    dev-branch                       tracked
    markdown-strip                   tracked
    issue-43                         new (next fetch will store in remotes/origin)
    issue-45                         new (next fetch will store in remotes/origin)
    refs/remotes/origin/issue-11     stale (use 'git remote prune' to remove)
  Local branches configured for 'git pull':
    dev-branch merges with remote dev-branch
    master     merges with remote master
  Local refs configured for 'git push':
    dev-branch                     pushes to dev-branch                     (up to date)
    markdown-strip                 pushes to markdown-strip                 (up to date)
    master                         pushes to master                         (up to date)

這個命令列出了當(dāng)你在特定的分支上執(zhí)行 git push 會自動地推送到哪一個遠程分支购笆。 它也同樣地列出了哪些遠程分支不在你的本地粗悯,哪些遠程分支已經(jīng)從服務(wù)器上移除了, 還有當(dāng)你執(zhí)行 git pull 時哪些本地分支可以與它跟蹤的遠程分支自動合并同欠。

6样傍、遠程倉庫的重命名與移除:git remote renamegit remote rm

你可以運行 git remote rename 來修改一個遠程倉庫的簡寫名。 例如铺遂,想要將 tf 重命名為 ak衫哥,可以用 git remote rename 這樣做:

在這里插入圖片描述

值得注意的是這同樣也會修改你所有遠程跟蹤的分支名字。 那些過去引用 tf/main 的現(xiàn)在會引用 ak/main襟锐。

如果因為一些原因想要移除一個遠程倉庫——你已經(jīng)從服務(wù)器上搬走了或不再想使用某一個特定的鏡像了撤逢, 又或者某一個貢獻者不再貢獻了——可以使用 git remote removegit remote rm

在這里插入圖片描述

一旦你使用這種方式刪除了一個遠程倉庫,那么所有和這個遠程倉庫相關(guān)的遠程跟蹤分支以及配置信息也會一起被刪除粮坞。

zan.gif
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蚊荣,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子莫杈,更是在濱河造成了極大的恐慌互例,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件筝闹,死亡現(xiàn)場離奇詭異媳叨,居然都是意外死亡,警方通過查閱死者的電腦和手機关顷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門肩杈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人解寝,你說我怎么就攤上這事∷胰澹” “怎么了聋伦?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵夫偶,是天一觀的道長。 經(jīng)常有香客問我觉增,道長兵拢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任逾礁,我火速辦了婚禮说铃,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嘹履。我一直安慰自己腻扇,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布砾嫉。 她就那樣靜靜地躺著幼苛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪焕刮。 梳的紋絲不亂的頭發(fā)上舶沿,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天,我揣著相機與錄音配并,去河邊找鬼括荡。 笑死,一個胖子當(dāng)著我的面吹牛溉旋,可吹牛的內(nèi)容都是我干的畸冲。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼低滩,長吁一口氣:“原來是場噩夢啊……” “哼召夹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起恕沫,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤监憎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后婶溯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鲸阔,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年迄委,在試婚紗的時候發(fā)現(xiàn)自己被綠了褐筛。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡叙身,死狀恐怖渔扎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情信轿,我是刑警寧澤晃痴,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布残吩,位于F島的核電站,受9級特大地震影響倘核,放射性物質(zhì)發(fā)生泄漏泣侮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一紧唱、第九天 我趴在偏房一處隱蔽的房頂上張望活尊。 院中可真熱鬧,春花似錦漏益、人聲如沸蛹锰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宁仔。三九已至,卻和暖如春峦睡,著一層夾襖步出監(jiān)牢的瞬間翎苫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工榨了, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留煎谍,地道東北人。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓龙屉,卻偏偏與公主長得像呐粘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子转捕,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 介紹 為了能夠在任意git項目上協(xié)作以及保存作岖,這就需要用到遠程倉庫。遠程倉庫時指托管在網(wǎng)絡(luò)上的項目的版本庫五芝。你可以...
    redher閱讀 351評論 0 0
  • 遠程倉庫的使用 遠程倉庫是指托管在網(wǎng)絡(luò)上的項目倉庫枢步,可能會有好多個沉删,其中有些你只能讀,另外有些可以寫醉途。同他人協(xié)作開...
    walker86閱讀 678評論 0 0
  • 遠程倉庫的使用 要參與任何一個 Git 項目的協(xié)作矾瑰,必須要了解該如何管理遠程倉庫。遠程倉庫是指托管在網(wǎng)絡(luò)上的項目倉...
    world_7735閱讀 323評論 0 5
  • Git 基礎(chǔ) - 遠程倉庫的使用 遠程倉庫的使用 為了能在任意 Git 項目上協(xié)作隘擎,你需要知道如何管理自己的遠程倉...
    張都尉閱讀 191評論 0 1
  • 這部分的確不知道怎么描述殴穴,只能把執(zhí)行步驟一步步寫下來,按著步驟做就行了。1.查找有沒有.ssh文件 如果沒報錯推正,執(zhí)...
    愛偷懶的萬萬閱讀 656評論 0 9