5. Fork 模式

如果一個(gè)開源項(xiàng)目派生出另外的項(xiàng)目夯辖,通常意味著項(xiàng)目的分裂和開發(fā)團(tuán)隊(duì)的削弱茁帽,而GitHub中的項(xiàng)目派生則不會(huì),而且正好相反因惭,GitHub中的項(xiàng)目派生是項(xiàng)目壯大的體現(xiàn)岳锁。所有的派生項(xiàng)目都會(huì)有鏈接指向原始項(xiàng)目,派生項(xiàng)目沒有獨(dú)立的缺陷追蹤系統(tǒng)(ISSUE)蹦魔,而是必須利用創(chuàng)建者本人的項(xiàng)目中的缺陷追蹤系統(tǒng)激率。至于在派生項(xiàng)目中創(chuàng)建的提交,可以非常方便地利用GitHub的Pull Request工具向原始項(xiàng)目的維護(hù)者發(fā)送Pull Request勿决。

版本庫派生

下面就以用戶gotgithub身份乒躺,訪問版本庫 https://github.com/gotgit/gotgit/ ,添加新的勘誤低缩。
點(diǎn)擊項(xiàng)目名稱右側(cè)的Fork按鈕嘉冒,便在gotgithub用戶自己的托管空間下創(chuàng)建項(xiàng)目派生. 訪問派生后的版本庫,會(huì)發(fā)現(xiàn)和派生前的幾乎相同咆繁,除了沒有缺陷跟蹤(ISSUE)

現(xiàn)在gotgithub用戶就在本地派生的版本庫中提交讳推。

  • 克隆 gotgithub/gotgit 版本庫。

$ git clone git@github.com:gotgithub/gotgit.git
$ cd gotgit

  • 編輯文件玩般。

$ vi README.md
$ git diff

  • 提交修改

$ git add -u
$ git commit -m "Fixed #3: should be 項(xiàng)目, not 項(xiàng)."

  • 推送提交到GitHub银觅。

$ git push

訪問GitHub上的派生項(xiàng)目頁面,會(huì)看到在master分支創(chuàng)建的提交坏为。

Pull Request

那么如何能夠讓gotgit原始項(xiàng)目的創(chuàng)建者知道這個(gè)派生項(xiàng)目及新的提交呢究驴?GitHub提供的工具就是“Pull Request”
點(diǎn)擊New pull request按鈕進(jìn)入Pull Request創(chuàng)建界面慨仿。在彈出的Pull Request創(chuàng)建界面中查看所包含的提交. 點(diǎn)擊“Create pull request”,填寫Pull Request的標(biāo)題和內(nèi)容纳胧,完成Pull Request的創(chuàng)建。
當(dāng)Pull Request發(fā)出后帘撰,項(xiàng)目gotgit的開發(fā)者會(huì)收到通知郵件. 點(diǎn)擊郵件中的URL鏈接跑慕,以項(xiàng)目gotgit的開發(fā)者(如ossxp-com)身份登錄, 可以向Pull Request追加評(píng)論,或者關(guān)閉此Pull Request摧找。GitHub如果檢測(cè)到Pull Request中包含的提交可以直接合并核行,會(huì)顯示自動(dòng)合并的提示信息,點(diǎn)擊“Confirm Merge”按鈕即完成Pull Request中所含提交的自動(dòng)合并蹬耘。自動(dòng)合并完成后芝雪,Pull Request頁面下方會(huì)以評(píng)論的形式出現(xiàn)相關(guān)提示,并自動(dòng)關(guān)閉Pull Request

手工合并

下面就演示一下當(dāng)收到他人的Pull Request后综苔,該如何手動(dòng)合并惩系。實(shí)際上在很多情況下,Pull Request所含提交有可能造成合并沖突如筛,那樣的話GitHub不再堡牡、也不能提供自動(dòng)合并功能,就必須采用手工合并的方式杨刨。

  • 將Pull Request發(fā)出者的派生版本庫添加為一個(gè)新的源晤柄。
    例如收到來自gotgithub用戶的Pull Request,不妨以gotgithub為名添加新的源妖胀。

$ git remote add gotgithub https://github.com/gotgithub/gotgit.git

  • 此時(shí)版本庫中有兩個(gè)源芥颈,一個(gè)克隆時(shí)自動(dòng)建立的origin,另外一個(gè)就是新增加的gotgithub赚抡。

$ git remote -v
gotgithub https://github.com/gotgithub/gotgit.git (fetch)
gotgithub https://github.com/gotgithub/gotgit.git (push)
origin git@github.com:gotgit/gotgit.git (fetch)
origin git@github.com:gotgit/gotgit.git (push)

  • 獲取遠(yuǎn)程版本庫gotgithub的分支和提交爬坑。

$ git fetch gotgithub
From https://github.com/gotgithub/gotgit
* [new branch] gh-pages -> gotgithub/gh-pages
* [new branch] master -> gotgithub/master

  • 現(xiàn)在除了本地分支master外,還有若干遠(yuǎn)程分支怕品,如下:

$ git branch -a
* master
remotes/gotgithub/gh-pages
remotes/gotgithub/master
remotes/origin/HEAD -> origin/master
remotes/origin/gh-pages
remotes/origin/master

  • 將遠(yuǎn)程分支remotes/gotgithub/master(可簡寫為gotgithub/master)合并到當(dāng)前分支中妇垢。

$ git merge gotgithub/master
Updating 00c6c4b..7ecdfe7
Fast-forward
errata.mkd | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)

  • 查看提交說明,看到此次合并沒有產(chǎn)生不必要的合并提交肉康。

$ git log --graph -2
* commit 7ecdfe7451412cfb2e65bb47c12cf2162e21c841
| Author: Wang Sheng wangsheng@ossxp.com
| Date: Tue Aug 16 10:17:53 2011 +0800
|
| Fixed #3: should be 項(xiàng)目, not 項(xiàng).
|
* commit 00c6c4bfab9824bd967440902ce87440f9e87852
| Author: Jiang Xin worldhello.net@gmail.com
| Date: Wed Aug 3 11:50:31 2011 +0800
|
| Change font color for stronger text from red to brown.

  • 將合并推送到GitHub版本庫中闯估。

$ git push

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市吼和,隨后出現(xiàn)的幾起案子涨薪,更是在濱河造成了極大的恐慌,老刑警劉巖炫乓,帶你破解...
    沈念sama閱讀 206,013評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件刚夺,死亡現(xiàn)場(chǎng)離奇詭異献丑,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)侠姑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門创橄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人莽红,你說我怎么就攤上這事妥畏。” “怎么了安吁?”我有些...
    開封第一講書人閱讀 152,370評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵醉蚁,是天一觀的道長。 經(jīng)常有香客問我鬼店,道長网棍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,168評(píng)論 1 278
  • 正文 為了忘掉前任妇智,我火速辦了婚禮滥玷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘俘陷。我一直安慰自己罗捎,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評(píng)論 5 371
  • 文/花漫 我一把揭開白布拉盾。 她就那樣靜靜地躺著桨菜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪捉偏。 梳的紋絲不亂的頭發(fā)上倒得,一...
    開封第一講書人閱讀 48,954評(píng)論 1 283
  • 那天,我揣著相機(jī)與錄音夭禽,去河邊找鬼霞掺。 笑死,一個(gè)胖子當(dāng)著我的面吹牛讹躯,可吹牛的內(nèi)容都是我干的菩彬。 我是一名探鬼主播,決...
    沈念sama閱讀 38,271評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼潮梯,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼骗灶!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起秉馏,我...
    開封第一講書人閱讀 36,916評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤耙旦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后萝究,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體免都,經(jīng)...
    沈念sama閱讀 43,382評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡锉罐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了绕娘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片脓规。...
    茶點(diǎn)故事閱讀 37,989評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖险领,靈堂內(nèi)的尸體忽然破棺而出抖拦,到底是詐尸還是另有隱情,我是刑警寧澤舷暮,帶...
    沈念sama閱讀 33,624評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站噩茄,受9級(jí)特大地震影響下面,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜绩聘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評(píng)論 3 307
  • 文/蒙蒙 一沥割、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧凿菩,春花似錦机杜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至获黔,卻和暖如春蚀苛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背玷氏。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評(píng)論 1 260
  • 我被黑心中介騙來泰國打工堵未, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人盏触。 一個(gè)月前我還...
    沈念sama閱讀 45,401評(píng)論 2 352
  • 正文 我出身青樓渗蟹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親赞辩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子雌芽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評(píng)論 2 345

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

  • 一、青蔥歲月暢想 青蔥歲月群——伴著激揚(yáng)的德國戰(zhàn)歌走來诗宣。時(shí)而氣勢(shì)磅礴膘怕,時(shí)而威風(fēng)凜凜,時(shí)而柔情似水召庞,時(shí)而風(fēng)情萬種岛心。 ...
    曉村閱讀 591評(píng)論 0 0
  • 見你那么匆匆忙忙 我又倍感慌張 仿佛要把世界涂成你的顏色 讓世人跟著你的平仄 一日之寒是否會(huì)地凍三尺 陽光的溫暖又...
    vegout閱讀 419評(píng)論 0 0
  • 我現(xiàn)在来破,此時(shí)此刻,異常焦慮忘古,本來想搞搞公眾號(hào)徘禁,結(jié)果發(fā)現(xiàn),這特么的都是啥髓堪,這是啥送朱,這又是啥,這里放什么……公眾號(hào)怎么...
    想去遠(yuǎn)方的喵喵醬閱讀 200評(píng)論 3 2
  • 世界那么美好回怜,生活卻有煩惱。生活中的五塊九毛八换薄、八塊九毛九玉雾、兩塊九毛八有時(shí)候會(huì)讓你喘不氣,過著那種活著不如死了的生...
    快讀書閱讀 228評(píng)論 1 0