Fork 一個示例倉庫
Fork 是對一個倉庫的克隆。克隆一個倉庫允許你自由試驗各種改變,而不影響原始的項目。
一般來說,forks 被用於去更改別人的項目(貢獻代碼給已經開源的項目)或者使用別人的項目作為你自己想法的初始開發點。
提出更改別人的項目
使用 forks 提出改變的一個很好的例子是漏洞修復。與其記錄一個你發現的問題,不如:
- Fork 這個倉庫
- 進行修復
- 向這個項目的擁有者提交一個 pull requset
如果這個項目的擁有者認同你的成果,他們可能會將你的修復更新到原始的倉庫中!
使用別人的項目作為你自己想法的初始開發點
開源的核心是共享代碼,我們可以制作更好、更可靠的軟件。
事實上,當你在 GitHub 上創建一個倉庫時,你可以選擇自動包含一個許可文件,這個文件決定你是否希望將你的項目分享給其他人。
Fork 一個倉庫分為簡單的兩步。我們已經創建了一個倉庫讓你用於練習!
- 在 GitHub 上,定位到 octocat/Spoon-Knife 倉庫。
- 在頁面右上角,點擊 Fork 按鈕。
同步你的 Fork 倉庫
你或許已經 fork 一個項目為了提交更改向 upstream 或原始倉庫。這種情況下,很好的實現了將 upstream 倉庫定期同步到你的 fork。要做到這一點,你需要在命令行中使用 Git。你可以使用你剛剛 fork 的 octocat/Spoon-Knife 倉庫去練習設置 upstream 倉庫。
第一步:安裝 Git
你首先應該 安裝 Git,如果你還沒有。也不要忘記 通過 Git 驗證 GitHub。
第二步:為你 fork 的倉庫創建一個本地克隆
現在,你已經成功 fork Spoon-Knife 倉庫,但在你自己的計算機上並沒有這個倉庫的文件。讓我們克隆你 Fork 的代碼到你本地的計算機上。
1、在 GitHub 上,定位到你 fork 的 Spoon-Knife 倉庫。
2、在你 fork 的倉庫頁面的右側邊欄,點擊復制圖標復制你 fork 的 URL。
3、打開 Terminal 命令(針對蘋果系統用戶)或者命令提示行(針對 Windows 和 Linux 用戶)。
4、輸入 git clone
,然后粘貼在步驟 2 復制的 URL。它看起來就像如下所示,用你 GitHub 的用戶名代替 YOUR-USERNAME
:
$ git clone https://github.com/YOUR-USERNAME/Spoon-Knife
5、按下 回車鍵 ,你的本地克隆就創建了。
$ git clone https://github.com/YOUR-USERNAME/Spoon-Knife Cloning into `Spoon-Knife`... remote: Counting objects: 10, done. remote: Compressing objects: 100% (8/8), done. remove: Total 10 (delta 1), reused 10 (delta 1) Unpacking objects: 100% (10/10), done.
現在,你已經有了針對你 fork 的 Spoon-Knife 倉庫的本地克隆代碼!
第三步:通過配置 Git 來同步你 fork 的原始 Spoon-Knife 倉庫
當你 fork 一個項目是為了提出更改這個原始的倉庫,你可以配置 Git 將原始的或者 upstream 的變化更改到你本地。
1、在 GitHub 上,定位到 octocat/Spoon-Knife 倉庫。
2、在這個倉庫頁面的右側邊欄,點擊復制圖標復制這個倉庫的 URL。
3、打開 Terminal 命令(針對 Mac 用戶)或提示命令行(Windows 和 Linux 用戶)。
4、更改到你在步驟 2(創建一個本地)創建的你的 fork 的本地的目錄。
- 回到根目錄,只輸入
cd
。 - 輸入
ls
,列出當前目錄的文件和文件夾。 - 輸入
cd
目錄名”進入你輸入的目錄下。 - 輸入
cd ..
回到上一目錄。
5、輸入 git remove -v
,按下回車鍵,你將會看到你的 fork 當前配置的遠程倉庫:
$ git remote -v origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch) origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
6、輸入 git remote add upstream
,然后粘貼你在步驟 2 復制的 URL 並按下回車鍵。它看起來如下所示:
$ git remote add upstream https://github.com/octocat/Spoon-Knife.git
7、驗證你 fork 里新指明的這個 upstream 倉庫,再次輸入 git remote -v
。你將會看到你 fork 的 URL 作為原始的地址,而原始的倉庫的 URL 作為 upstream。
$ git remote -v origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch) origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push) upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch) upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)
現在,你可以保持你的 fork 與 upstream 的倉庫的同步,利用幾個 Git 命令。想知道更多信息,請參閱 Syncing a fork。
豆電雨 -- 摘自極客學院。