GitHub開源項目合作流程

一.首先需要在github上註冊賬號並登陸

二.安裝git,到github官網下載安裝包

ubuntu系統直接在終端中輸入sudo git-apt install git安裝git

三.爲github賬號添加ssh key

clone項目到本地不需要身份認證,但要push修改到github上需要身份驗證。push修改時走ssh協議,所以這裏需要將我們的公鑰添加到github賬號中。這裏就是ssh實現無密碼登陸,或者所謂的公鑰登陸,就是採用了私鑰確定唯一身份的原理。

  1. 生成密鑰對。運行終端執行以下命令:
    ssh-keygen -t rsa -C "郵箱"
    按3下enter
  2. cat ~/.ssh/id_rsa.pub查看密鑰
  3. 在github上添加密鑰,這裏添加的是id_rsa.pub裏面的公鑰
  4. 添加私密鑰到ssh:ssh-add ~/.ssh/id_rsa,用於驗證唯一身份

四.fork你想參加的項目

  1. 瀏覽git上的開源項目,然後點擊fork,這時就跳到你的賬號下,此項目就是你賬號下的項目了。
  2. fork就相當於把別人的項目克隆到自己的賬號下一份,以後你的修改都應該是提交到你自己的github賬號的這個項目中,你是沒有權限直接push到原作者賬號下的項目中的。

五.clone項目到本地

  1. 複製項目clone地址 注意是clone自己賬號下的項目地址,不是原作者的,原作者的你雖然也可以clone到本地,但是你是沒push權限的。還要注意這裏咱們使用ssh協議,所以要選擇ssh類型的地址。
  2. clone到本地,在命令行輸入git clone 複製的地址,然後執行,然後就可以進入項目目錄了。

六.將項目原地址添加爲遠程倉庫

複製原作者的項目地址,添加爲自己的一個遠程倉庫,用來實時將原項目的修改更新到咱們本地併合並。注意也是複製ssh協議類型的地址哦。

  1. 添加遠程倉庫:git remote add upstream 原作者項目地址
  2. 使用git remote -v可以看到我們有兩個倉庫一個origin,咱們自己的github倉庫;一個upstream,原作者的遠程倉庫。當然也可以不用upstream這個名字

七.創建branch,用於添加自己的修改

這只是一個約定成俗的方式,當然你也可以在master上添加修改,創建新的branch添加自己的修改的好處是,你可以同時添加多個修改,在一個修改還沒有被原作者merge時,你可以用master創建新的branch繼續你的其它修改。
在這裏我們在新添加的分支上修改:執行如下命令:

git branch test  //創建你test分支
git checkout test//切換到test分支
或者這樣:
git checkout -b test

然後就可以添加我們的修改了

八.同步遠程倉庫

因爲是合作開發項目,這時遠程倉庫中的內容有可能已經發生了變化,所以我們需要將遠程倉庫中的內容和本地分支中的內容進行合併
方法1. pull方式是直接把遠程倉庫的主幹和分支全合在一起拉過來,相當於fetch+merge
git pull [遠程倉庫名稱] [分支名稱]
方法2. git fetch 相當於是從遠程獲取最新到本地,不會自動merge,如下指令:

git fetch [遠程倉庫名稱] [想要弄來的分支]:tmp //將遠程倉庫master分支獲取最新,在本地建立tmp分支,將最新的遠程倉庫存入tmp分支
git diff tmp //將當前分支和tmp進行對比,可以看出修改了什麼
如果你新建分支用來修改,那就切到用來修改的分支,合併tmp,然後修改提交,如果你用master直接修改,直接用master合併tmp再修改
git merge origin/tmp //合併tmp分支到當前分支(在master分支)

九.將修改push到我們的github上

由於我們的github上還沒有test分支,所以我們得把命令寫全了:git push origin test:test

十.pull request

  1. 你的修改已經push到了你的github下了,但是你要向原作者請求合併到原項目中,如果原作者合併了,也就意味着你是此項目的貢獻者了。
  2. 到你的github上點擊如下按鈕
    拉取請求
  3. 當然你也可以選擇test分支,,然後點擊項目右邊的創建一個pull request。提交完pull request,原作者就會看到你的合併請求,採不採納就是他的事了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章