Git fork 指南:fork別人的倉庫並做爲貢獻者提交代碼

流程總結
A 克隆項目,增長代碼git

  1. 在 Github 上 fork 想要參與的項目倉庫 Qingtong/pinghu_project, fork後會生成本身的項目 pinghu_project
  2. git clone 本身的項目
  3. git add XXgit commit -m "" 進行更新,提交
  4. git push origin master 推送到本身的遠程倉庫 marh/pinghu_project
  5. 在 github 上新建 Pull Request 請求
  6. 項目管理員會審覈你提交的代碼,若是合適就會贊成合併,這樣你的代碼就會出如今源項目中。
當咱們睡了一覺起來,**Qingtong/pinghu_project**倉庫可能已經更新,咱們要同步最新代碼

B 獲取最新代碼github

  1. 給遠程的上游倉庫Qingtong/pinghu_project配置一個 remote 。安全

    • git remote -v 查看遠程狀態
    • git remote add upstream 遠程倉庫qingtong/pinghu連接微信

      • 例如:git remote add upstream https://xxx.com/Qingtong/pinghu.git
  2. git fetch upstream 將遠程全部的分支fetch下來
  3. git merge upstream/master 合併不是master分支的代碼
  4. git pull upstream master 能夠代替步驟 7+8。 git pull = fetch + merge

此時本身本地的代碼就是最新的了,修改完代碼後,重複A流程中的步驟 3-5fetch

fork 流程圖

734.png

7341583-9a3e2d043e00d83a.png

A克隆項目,增長代碼

1、找到本身喜歡的項目並fork

公司的項目: Qingtong/pinghu_project
微信截圖_20200209133033.pngspa

個人項目:marh/pinghu_project
fork後咱們的倉庫中會多出一個一毛同樣的項目,可是所屬人不一樣。
微信截圖_20200209133516.png3d

2、克隆本身的代碼到本地

切換到目錄,克隆本身的項目(marh/pinghu_project): git clone https://XXX.com/marh/pinghu_project.git
能夠看到咱們的桌面多了一個項目文件夾
微信截圖_20200209142546.pngcode

3、接下來咱們就能夠在項目中增長本身的代碼了

一、建立本身的分支

爲何咱們要建立分支?blog

假設你準備開發一個新功能,可是須要兩週才能完成,第一週你寫了50%的代碼,若是馬上提交,因爲代碼還沒寫完,不完整的代碼庫會致使別人不能幹活了。若是等代碼所有寫完再一次提交,又存在丟失天天進度的巨大風險。

如今有了分支,就不用怕了。你建立了一個屬於你本身的分支,別人看不到,還繼續在原來的分支上正常工做。而你在本身的分支上幹活,想提交就提交,直到開發完畢後,再一次性合併到原來的分支上,這樣,既安全,又不影響別人工做。項目管理

git branch 查看現有分支,咱們看到會有一個master分支
微信截圖_20200209144105.png

git checkout -b dev 或者 git switch -c dev 建立並切換到分支dev,咱們再次查看分支,看到已經切換到dev分支
微信截圖_20200209144415.png

二、修改代碼並提交

咱們添加一個文件 git.txt
微信截圖_20200209142929.png

git add . 把工做時的全部變化提交到暫存區
git commit -m "add git.txt" 將暫存區裏的改動給提交到本地的版本庫
微信截圖_20200209144818.png

4、推送到咱們的遠程倉庫

git push origin dev 將修改推送到倉庫項目(marh/pinghu_project)中
微信截圖_20200209144910.png

能夠看到咱們的倉庫項目中已經有了剛纔提交的分支
微信截圖_20200209145010.png

5、發送合併請求 (Pull Request)

微信截圖_20200209145400.png

微信截圖_20200209150706.png

微信截圖_20200209151745.png

合併請求提交完成

6、管理員視角:贊成/拒絕合併其餘開發人員提交分支(通常開發人員沒有權限)

微信截圖_20200209152321.png

微信截圖_20200209181053.png

合併成功後咱們就能夠看到分支中出現了咱們提交的文件
微信截圖_20200209181310.png

B 獲取源倉庫(Qingtong/pinghu_project)的最新代碼

7、與fork的項目保持同步

當咱們睡了一覺起來,Qingtong/pinghu_project 源倉庫可能已經更新了代碼,咱們要保證本地的代碼也是最新的而後再開發

1. 給遠程的上游倉庫Qingtong/pinghu_project配置一個 remote 。

git remote -v 查看遠程狀態
git remote add upstream 遠程源倉庫qingtong/pinghu連接
例如:git remote add upstream https://xxx.com/Qingtong/pinghu.git
微信截圖_20200209183329.png

2. 拉去遠程原倉庫的代碼

git pull upstream master

咱們也能夠:
git fetch upstream 將遠程全部的分支fetch下來
git merge upstream/master 合併不是master分支的代碼
git pull = fetch + merge

此時本身本地的代碼就是最新的了,修改完代碼後,重複A流程中的步驟 3-5

相關文章
相關標籤/搜索