溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Git協(xié)作

發(fā)布時(shí)間:2020-07-23 18:43:31 來(lái)源:網(wǎng)絡(luò) 閱讀:318 作者:zddnd 欄目:網(wǎng)絡(luò)安全

遠(yuǎn)程倉(cāng)庫(kù)

  當(dāng)你從遠(yuǎn)程倉(cāng)庫(kù)克隆時(shí),實(shí)際上Git自動(dòng)把本地的master分支和遠(yuǎn)程的master分支對(duì)應(yīng)起來(lái)了,并且,遠(yuǎn)程倉(cāng)庫(kù)的默認(rèn)名稱是origin。

  要查看遠(yuǎn)程庫(kù)的信息,用git remote:

Git協(xié)作

  或者,用git remote -v顯示更詳細(xì)的信息:

Git協(xié)作

  上面顯示了可以抓取和推送的origin的地址。如果沒(méi)有推送權(quán)限,就看不到push的地址

 

推送分支

  推送分支,就是把該分支上的所有本地提交推送到遠(yuǎn)程庫(kù)。推送時(shí),要指定本地分支,這樣,Git就會(huì)把該分支推送到遠(yuǎn)程庫(kù)對(duì)應(yīng)的遠(yuǎn)程分支上

$ git push origin master

Git協(xié)作

  如果要推送其他分支,比如dev,就改成:

$ git push origin dev

  但是,并不是一定要把本地分支往遠(yuǎn)程推送,那么,哪些分支需要推送,哪些不需要呢?

  master分支是主分支,因此要時(shí)刻與遠(yuǎn)程同步;

  dev分支是開發(fā)分支,團(tuán)隊(duì)所有成員都需要在上面工作,所以也需要與遠(yuǎn)程同步;

  bug分支只用于在本地修復(fù)bug,就沒(méi)必要推到遠(yuǎn)程了,除非老板要看看你每周到底修復(fù)了幾個(gè)bug;

  feature分支是否推到遠(yuǎn)程,取決于你是否和你的小伙伴合作在上面開發(fā)

 

抓取分支

  多人協(xié)作時(shí),大家都會(huì)往master和dev分支上推送各自的修改

  現(xiàn)在,模擬一個(gè)你的小伙伴,可以在另一臺(tái)電腦(注意要把SSH Key添加到GitHub)或者同一臺(tái)電腦的另一個(gè)目錄下克隆:

Git協(xié)作

Git協(xié)作

  當(dāng)你的小伙伴從遠(yuǎn)程庫(kù)clone時(shí),默認(rèn)情況下,你的小伙伴只能看到本地的master分支

Git協(xié)作

  現(xiàn)在,你的小伙伴要在dev分支上開發(fā),就必須創(chuàng)建遠(yuǎn)程origindev分支到本地,于是他用這個(gè)命令創(chuàng)建本地dev分支:

$ git checkout -b dev origin/dev

Git協(xié)作

  現(xiàn)在,他就可以在dev上繼續(xù)修改,然后,時(shí)不時(shí)地把dev分支push到遠(yuǎn)程:

Git協(xié)作

  你的小伙伴已經(jīng)向origin/dev分支推送了他的提交,而碰巧你也對(duì)同樣的文件作了修改,并試圖推送

Git協(xié)作

  推送失敗,因?yàn)槟愕男』锇榈淖钚绿峤缓湍阍噲D推送的提交有沖突,解決辦法也很簡(jiǎn)單,Git已經(jīng)提示我們,先用git pull把最新的提交從origin/dev抓下來(lái),然后,在本地合并,解決沖突,再推送:

Git協(xié)作

  git pull也失敗了,原因是沒(méi)有指定本地dev分支與遠(yuǎn)程origin/dev分支的鏈接,根據(jù)提示,設(shè)置devorigin/dev的鏈接

Git協(xié)作

  再pull:

Git協(xié)作

  這回git pull成功,但是合并有沖突,需要手動(dòng)解決,解決的方法和分支管理中的解決沖突完全一樣。解決后,提交,再push:

Git協(xié)作

 

fetch和pull

  要獲取服務(wù)器遠(yuǎn)程分支的數(shù)據(jù)有兩條命令可以使用除了上面使用過(guò)的pull命令之外,還有fetch命令

  $ git fetch origin 同步遠(yuǎn)程服務(wù)器origin上master分支的數(shù)據(jù)到本地

  使用fetch命令,只是將origin的數(shù)據(jù)下載到了本地,但本地的工作目錄只有使用merge合并,才能更新為最新的內(nèi)容

  $ git merge origin/master 合并遠(yuǎn)程服務(wù)器上的遠(yuǎn)程分支master到本地分支master

  而如果使用pull命令,則相當(dāng)于fetch和merge這兩個(gè)命令的合并

  $ git pull origin 同步遠(yuǎn)程服務(wù)器origin上master分支的數(shù)據(jù)到本地,并合并到本地分支master

  如果不是默認(rèn)的master分支,而是其他分支,比如dev分支,則可以使用

$ git pull origin dev

  相當(dāng)于

$ git fetch origin dev
$ git merge origin/dev


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI