遠(yuǎn)程倉庫

遠(yuǎn)程倉庫是指托管在網(wǎng)絡(luò)上的項(xiàng)目倉庫斑响,可能會(huì)有好多個(gè)菱属,其中有些你只能讀,另外有些可以寫舰罚。同他人協(xié)作開發(fā)某個(gè)項(xiàng)目時(shí)纽门,需要管理這些遠(yuǎn)程倉庫,以便推送或拉取數(shù)據(jù)营罢,分享各自的工作進(jìn)展膜毁。常用對(duì)倉庫的操作:

  • git clone
  • git remote
  • git fetch
  • git pull
  • git push
image.png

clone

克隆遠(yuǎn)程倉庫

git clone 從遠(yuǎn)程主機(jī)克隆一個(gè)版本庫, 該命令會(huì)在本地主機(jī)生成一個(gè)目錄,與遠(yuǎn)程主機(jī)的版本庫同名愤钾。如果要指定不同的目錄名瘟滨,可以將目錄名作為git clone命令的第二個(gè)參數(shù)。

# 克隆git倉庫
# git clone <版本庫的網(wǎng)址>
$ git clone https://github.com/git/git.git

# 克隆指定目錄(yjd_git)
# git clone <版本庫的網(wǎng)址> <本地目錄名>
$ git clone https://github.com/git/git.git yjd_git

remote

查看遠(yuǎn)程倉庫

git remote 它會(huì)列出每個(gè)遠(yuǎn)程倉庫的簡(jiǎn)短名字能颁,克隆完某個(gè)項(xiàng)目后杂瘸,至少可以看到一個(gè)名為 origin 的遠(yuǎn)程倉庫,Git 默認(rèn)使用這個(gè)名字來標(biāo)識(shí)你所克隆的原始倉庫伙菊。

# 查看簡(jiǎn)短名字
$ git remote
origin

# 查看詳細(xì)信息  
$ git remote -v 
origin  git@github.com:JinduYin/test_git.git (fetch)
origin  git@github.com:JinduYin/test_git.git (push)

添加遠(yuǎn)程倉庫

git remote add 添加一個(gè)新的遠(yuǎn)程倉庫败玉,可以指定一個(gè)簡(jiǎn)短的名字以便將來引用

# 添加遠(yuǎn)程倉庫
# git remote add <主機(jī)名> <網(wǎng)址>
# 新增test-yjd.git倉庫

$ git remote add tcjf git@gitServer:yjd48676/test-yjd.git
$ git remote -v
origin  git@github.com:JinduYin/test_git.git (fetch)
origin  git@github.com:JinduYin/test_git.git (push)
tcjf    git@gitServer:yjd/test-yjd.git (fetch)
tcjf    git@gitServer:yjd/test-yjd.git (push)

刪除遠(yuǎn)程倉庫

git remote rm 刪除遠(yuǎn)程倉庫

# 刪除遠(yuǎn)程倉庫
# git remote rm <主機(jī)名>
# 刪除tcjf倉庫
$ git remote rm tcjf
$ git remote -v
origin  git@github.com:JinduYin/test_git.git (fetch)
origin  git@github.com:JinduYin/test_git.git (push)

重命名遠(yuǎn)程倉庫

git remote rename 遠(yuǎn)程倉庫改名

# 重命名遠(yuǎn)程倉庫
# git remote rename <原主機(jī)名> <新主機(jī)名>
# 把origin改成test
$ git remote rename origin test 
$ git remote -v
test    git@github.com:JinduYin/test_git.git (fetch)
test    git@github.com:JinduYin/test_git.git (push)

fetch

git fetch 將遠(yuǎn)程倉庫的版本庫有了更新(Git術(shù)語叫做commit)取回本地。
git fetch 命令通常用來查看其他人的進(jìn)程镜硕,因?yàn)樗』氐拇a對(duì)你本地的開發(fā)代碼沒有影響运翼。默認(rèn)情況下,git fetch取回所有分支(branch)的更新兴枯。

git fetch代碼同步到本地倉庫(其實(shí)是.git目錄下)不會(huì)對(duì)工作目錄有任何更改(肯定也不會(huì)在本地創(chuàng)建相應(yīng)的分支信息)血淌。從本地倉庫到工作目錄需要git merge操作

# 將某個(gè)遠(yuǎn)程主機(jī)的更新,全部取回本地
$ git fetch <遠(yuǎn)程主機(jī)名>
$ git fetch <遠(yuǎn)程主機(jī)名> <分支名>

所取回的更新财剖,在本地主機(jī)上要用"遠(yuǎn)程主機(jī)名/分支名"的形式讀取悠夯。比如origin主機(jī)的master,就要用origin/master讀取躺坟。

# 取回本地沒有的分支
# fetch只是把代碼拖到本地庫沦补,并沒有創(chuàng)建本地沒有的分支
# 比如要獲取fetch后dev的分支
$ git checkout -b dev origin/dev

上面命令表示,在origin/master的基礎(chǔ)上咪橙,創(chuàng)建一個(gè)新分支夕膀。
此外虚倒,也可以使用git merge命令或者git rebase命令,在本地分支上合并遠(yuǎn)程分支产舞。

$ git merge origin/master
# 或者
$ git rebase origin/master
# 示例
# 更新代碼
$ git fetch
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
Unpacking objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
From github.com:JinduYin/test_git
 * [new branch]      dev        -> origin/dev


# 查看本地分支
$ git branch
* master

# 查看遠(yuǎn)程
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/dev
  remotes/origin/foo
  remotes/origin/master

# 創(chuàng)建分支
$ git checkout -b dev origin/dev
Branch dev set up to track remote branch dev from origin.
Switched to a new branch 'dev'

# 再查看本地分支
$ git branch
* dev
  master

pull

git pull 取回遠(yuǎn)程主機(jī)某個(gè)分支的更新魂奥,再與本地的指定分支合并。

# git pull <遠(yuǎn)程主機(jī)名> <遠(yuǎn)程分支名>:<本地分支名>
# 示例
# 取回origin主機(jī)的next分支庞瘸,與本地的master分支合并
$ git pull origin next:master

# 遠(yuǎn)程分支是與當(dāng)前分支合并捧弃,則冒號(hào)后面的部分可以省略赠叼。
$ git pull origin next

git pull命令實(shí)際上相當(dāng)于執(zhí)行了兩條命令

$ git fetch origin
$ git merge origin/next

追蹤關(guān)系
git branch -vv 查看追蹤關(guān)系

$ git branch -vv
* dev    deab1f9 [origin/dev] update
  master 83428ce [origin/master] add e

在某些場(chǎng)合擦囊,Git會(huì)自動(dòng)在本地分支與遠(yuǎn)程分支之間,建立一種追蹤關(guān)系(tracking)嘴办。比如瞬场,在git clone的時(shí)候,所有本地分支默認(rèn)與遠(yuǎn)程主機(jī)的同名分支涧郊,建立追蹤關(guān)系贯被,也就是說,本地的master分支自動(dòng)"追蹤"origin/master分支妆艘。
Git也允許手動(dòng)建立追蹤關(guān)系彤灶。

git branch --set-upstream master origin/next 指定master分支追蹤origin/next分支

如果當(dāng)前分支與遠(yuǎn)程分支存在追蹤關(guān)系,git pull就可以省略遠(yuǎn)程分支名批旺。

# 本地的當(dāng)前分支自動(dòng)與對(duì)應(yīng)的origin主機(jī)"追蹤分支"(remote-tracking branch)進(jìn)行合并
$ git pull origin

push

git push命令用于將本地分支的更新幌陕,推送到遠(yuǎn)程主機(jī)。它的格式與git pull命令相仿汽煮。

$ git push <遠(yuǎn)程主機(jī)名> <本地分支名>:<遠(yuǎn)程分支名>

注意:分支推送順序的寫法是<來源地>:<目的地>搏熄,所以git pull是<遠(yuǎn)程分支>:<本地分支>,而git push是<本地分支>:<遠(yuǎn)程分支>暇赤。

省略遠(yuǎn)程分支名心例,則表示將本地分支推送與之存在"追蹤關(guān)系"的遠(yuǎn)程分支(通常兩者同名),如果該遠(yuǎn)程分支不存在鞋囊,則會(huì)被新建止后。

$ git push origin master

省略本地分支名,則表示刪除指定的遠(yuǎn)程分支溜腐,因?yàn)檫@等同于推送一個(gè)空的本地分支到遠(yuǎn)程分支

# 刪除遠(yuǎn)程分支
$ git push origin :dev
# 等同于
$ git push origin --delete dev

當(dāng)前分支與遠(yuǎn)程分支之間存在追蹤關(guān)系坯门,則本地分支和遠(yuǎn)程分支都可以省略

$ git push origin

如果當(dāng)前分支與多個(gè)主機(jī)存在追蹤關(guān)系,則可以使用-u選項(xiàng)指定一個(gè)默認(rèn)主機(jī)逗扒,這樣后面就可以不加任何參數(shù)使用git push

$ git push -u origin master

上面命令將本地的master分支推送到origin主機(jī)古戴,同時(shí)指定origin為默認(rèn)主機(jī),后面就可以不加任何參數(shù)使用git push

不帶任何參數(shù)的git push矩肩,默認(rèn)只推送當(dāng)前分支现恼,這叫做simple方式肃续。此外,還有一種matching方式叉袍,會(huì)推送所有有對(duì)應(yīng)的遠(yuǎn)程分支的本地分支始锚。Git 2.0版本之前,默認(rèn)采用matching方法喳逛,現(xiàn)在改為默認(rèn)采用simple方式瞧捌。如果要修改這個(gè)設(shè)置,可以采用git config命令润文。

$ git config --global push.default matching
# 或者
$ git config --global push.default simple
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末姐呐,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子典蝌,更是在濱河造成了極大的恐慌曙砂,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,681評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件骏掀,死亡現(xiàn)場(chǎng)離奇詭異鸠澈,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)截驮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門笑陈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人葵袭,你說我怎么就攤上這事涵妥。” “怎么了眶熬?”我有些...
    開封第一講書人閱讀 169,421評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵妹笆,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我娜氏,道長(zhǎng)拳缠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,114評(píng)論 1 300
  • 正文 為了忘掉前任贸弥,我火速辦了婚禮窟坐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘绵疲。我一直安慰自己哲鸳,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評(píng)論 6 398
  • 文/花漫 我一把揭開白布盔憨。 她就那樣靜靜地躺著徙菠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪郁岩。 梳的紋絲不亂的頭發(fā)上婿奔,一...
    開封第一講書人閱讀 52,713評(píng)論 1 312
  • 那天缺狠,我揣著相機(jī)與錄音,去河邊找鬼萍摊。 笑死挤茄,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的冰木。 我是一名探鬼主播穷劈,決...
    沈念sama閱讀 41,170評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼踊沸!你這毒婦竟也來了歇终?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,116評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤雕沿,失蹤者是張志新(化名)和其女友劉穎练湿,沒想到半個(gè)月后猴仑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體审轮,經(jīng)...
    沈念sama閱讀 46,651評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評(píng)論 3 342
  • 正文 我和宋清朗相戀三年辽俗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了疾渣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,865評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡崖飘,死狀恐怖榴捡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情朱浴,我是刑警寧澤吊圾,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站翰蠢,受9級(jí)特大地震影響项乒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜梁沧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評(píng)論 3 336
  • 文/蒙蒙 一檀何、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧廷支,春花似錦频鉴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至施敢,卻和暖如春周荐,著一層夾襖步出監(jiān)牢的瞬間辛萍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工羡藐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贩毕,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,299評(píng)論 3 379
  • 正文 我出身青樓仆嗦,卻偏偏與公主長(zhǎng)得像辉阶,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子瘩扼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評(píng)論 2 361

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

  • 遠(yuǎn)程倉庫 到目前為止谆甜,我們已經(jīng)掌握了如何在Git倉庫里對(duì)一個(gè)文件進(jìn)行時(shí)光穿梭,你再也不用擔(dān)心文件備份或者丟失的問題...
    歸云丶閱讀 1,963評(píng)論 0 5
  • 添加遠(yuǎn)程倉庫 你首先需要有一個(gè)遠(yuǎn)程倉庫集绰,我是在 碼云上創(chuàng)建的項(xiàng)目规辱,你也可以使用比較洋氣的GitHub 運(yùn)行 git...
    我相信你愛過gg閱讀 420評(píng)論 1 0
  • 遠(yuǎn)程倉庫。 在了解之前栽燕,先注冊(cè)github賬號(hào)罕袋,由于你的本地Git倉庫和github倉庫之間的傳輸是通過SSH加密...
    在你左右2018閱讀 349評(píng)論 0 0
  • 本次學(xué)習(xí)內(nèi)容:U6L1 回家作業(yè): 灰色練習(xí)冊(cè): Workbook - P73, Activity A. Look...
    TimmySHENX閱讀 106評(píng)論 0 0
  • 終身學(xué)習(xí)在現(xiàn)在的中國(guó)人的概念中有點(diǎn)陌生浴讯。一般,40歲以后老一輩人認(rèn)為學(xué)習(xí)那就是大學(xué)之前和大學(xué)的時(shí)候應(yīng)該做的事情蔼啦,而...
    平靜的力量閱讀 174評(píng)論 0 1