fork的兩種使用場景:git
場景一:fork而且更新一個倉庫程序員
場景:有一個叫作Joe的程序員寫了一個程序,而你可能要去改進他。而且joe將他的代碼放到github倉庫上。下面是你要作的事情:github
1·fork他的倉庫:這是GitHub操做,這個操做會複製Joe的倉庫(包括文件,提交歷史,issues,和其他一些東西)。複製後的倉庫在你本身的GitHub賬號下。目前,你本地計算機對這個倉庫沒有任何操做ide
2·clone你的倉庫:這是Git操做。使用該操做讓你發送"請給我發一份我倉庫的複製文件"的命令給GitHub。如今這個倉庫就會存儲在你本地計算機上。同步
3·更新某些文件:如今,你能夠在任何程序或者環境下更新倉庫裏的文件。it
4·提交你的更改:這是Git操做。使用該操做讓你發送"記錄個人更改"的命令至GitHub。此操做只在你的本地計算機上完成。class
5·將你的更改push到你的github倉庫:這是Git操做。使用該操做讓你發送"這是個人修改"的信息給GitHub。Push操做不會自動完成,因此直到你作了push操做,GitHub才知道你的提交。基礎
6·給joe發送一個pull request:若是你認爲Joe會接受你的修改,你就能夠給他發送一個pull request。這是GitHub操做,使用此操做能夠幫助你和Joe交流你的修改,而且詢問Joe是否願意接受你的"pull request",固然,接不接受徹底取決於他本身。request
若是Joe接受了你的pull request,他將把那些修改拉到本身的倉庫。勝利!程序
場景二:同步一個fork
場景:oe和其他貢獻者已經對這個項目作了一些修改,而你將在他們的修改的基礎上,還要再作一些修改。在你開始以前,你最好"同步你的fork",以確保在最新的複製版本里工做。下面是你要作的:
1·從joe的倉庫中取出那些變化的文件:這是git操做,使用該命令讓你能夠從Joe的倉庫獲取最新的文件。
2·將這些修改合併到你本身的倉庫:這是Git操做,使用該命令使得那些修改更新到你的本地計算機(那些修改暫時存放在一個"分支"中)。記住:步驟1和2常常結合爲一個命令使用,合併後的Git命令叫作"pull"。
3.強那些修改更新推送到你的給github倉庫(可選):記住,你本地計算機不會自動更新你的GitHub倉庫。因此,惟一更新GitHub倉庫的辦法就是將那些修改推送上去。你能夠在步驟2完成後當即執行push,也能夠等到你作了本身的一些修改,並已經本地提交後再執行推送操做。