以我的經驗來看,剛接觸git和github時,最困擾的一件事情就是嘗試解決下面的問題:在git和github上,我能做什麼?
git教程往往不會解決這個問題,因為它集中篇幅來教你git命令和概念,並且不認為你會使用github。github幫助教程一定程度上彌補了這一缺陷,但是它每篇文章的關注點都較為狹隘,而且沒有提供關於"git vs github"問題的概念性概述。
如果你是習慣於先理解概念,再著手**的學習者,而且你也是git和github的初學者,我建議你先理解清楚什麼是fork。為什麼呢 ?
fork是在github起步最普遍的方式。
fork只需要很少的git命令,但是起得作用卻非常大。
fork提供了對git和github最基礎的了解,有益於你之後的工作。
本篇指南使用兩張簡單的圖表,來教會你fork的兩種主要工作流程。我並不打算涉及任何**,但是在結論中,我會把你需要使用的**的鏈結給你。
現在有這樣一種情形:有乙個叫做joe的程式猿寫了乙個遊戲程式,而你可能要去改進它。並且joe將他的**放在了github倉庫上。下面是你要做的事情:
alt text
fork並且更新github倉庫的圖表演示
fork他的倉庫:這是github操作,這個操作會複製joe的倉庫(包括檔案,提交歷史,issues,和其餘一些東西)。複製後的倉庫在你自己的github帳號下。目前,你本地計算機對這個倉庫沒有任何操作。
clone你的倉庫:這是git操作。使用該操作讓你傳送"請給我發乙份我倉庫的複製檔案"的命令給github。現在這個倉庫就會儲存在你本地計算機上。
更新某些檔案:現在,你可以在任何程式或者環境下更新倉庫裡的檔案。
提交你的更改:這是git操作。使用該操作讓你傳送"記錄我的更改"的命令至github。此操作只在你的本地計算機上完成。
將你的更改push到你的github倉庫:這是git操作。使用該操作讓你傳送"這是我的修改"的資訊給github。push操作不會自動完成,所以直到你做了push操作,github才知道你的提交。
給joe傳送乙個pull request:如果你認為joe會接受你的修改,你就可以給他傳送乙個pull request。這是github操作,使用此操作可以幫助你和joe交流你的修改,並且詢問joe是否願意接受你的"pull request",當然,接不接受完全取決於他自己。
如果joe接受了你的pull request,他將把那些修改拉到自己的倉庫。勝利!
joe和其餘貢獻者已經對這個專案做了一些修改,而你將在他們的修改的基礎上,還要再做一些修改。在你開始之前,你最好"同步你的fork",以確保在最新的複製版本裡工作。下面是你要做的:
同步github fork的圖表示意圖
從joe的倉庫中取出那些變化的檔案:這是git操作,使用該命令讓你可以從joe的倉庫獲取最新的檔案。
將這些修改合併到你自己的倉庫:這是git操作,使用該命令使得那些修改更新到你的本地計算機(那些修改暫時存放在乙個"分支"中)。記住:步驟1和2經常結合為乙個命令使用,合併後的git命令叫做"pull"。
將那些修改更新推送到你的github倉庫(可選):記住,你本地計算機不會自動更新你的github倉庫。所以,唯一更新github倉庫的辦法就是將那些修改推送上去。你可以在步驟2完成後立即執行push,也可以等到你做了自己的一些修改,並已經本地提交後再執行推送操作。
比較一下fork和同步工作流程的區別:當你最初fork乙個倉庫的時候,資訊的流向是從joe的倉庫到你的倉庫,然後再到你本地計算機。但是最初的過程之後,資訊的流向是從joe的倉庫到你的本地計算機,之後再到你的倉庫。
我希望這是一篇關於github和git 的 fork有用概述。現在,你已經理解了那些概念,你將會更容易地在實際中執行你的**。github關於fork和同步的文章將會給你大部分你需要的**。
在Github和Git上如何Fork?
剛接觸git和github時,最困擾的一件事情就是嘗試解決下面的問題 在git和github上,我能做什麼?現在有這樣一種情形 有乙個叫做joe的程式猿寫了乙個遊戲程式,而你可能要去改進它。並且joe將他的 放在了github倉庫上。下面是你要做的事情 fork他的倉庫 這是github操作,這個操...
在Github和Git上fork之簡單指南
以我的經驗來看,剛接觸git和github時,最困擾的一件事情就是嘗試解決下面的問題 在git和github上,我能做什麼?git教程往往不會解決這個問題,因為它集中篇幅來教你git命令和概念,並且不認為你會使用github。github幫助教程一定程度上彌補了這一缺陷,但是它每篇文章的關注點都較為...
在Github和Git上fork之簡單指南
以我的經驗來看,剛接觸git和github時,最困擾的一件事情就是嘗試解決下面的問題 在git和github上,我能做什麼?git教程往往不會解決這個問題,因為它集中篇幅來教你git命令和概念,並且不認為你會使用github。github幫助教程一定程度上彌補了這一缺陷,但是它每篇文章的關注點都較為...