1. 程式人生 > >GitHub從fork到pull request之基礎流程

GitHub從fork到pull request之基礎流程

之前接觸了github,但每次使用都還要查閱一些基礎用法,因此打算在此總結回顧一下。

首先來一遍從fork到pull request這個過程的基礎流程

  1. 首先,fork 一個repository,實際上是複製了一份 repository 到自己的 GitHub 賬戶下,然後就可以從 GitHub 將它 clone 到你的電腦上,命令如下:

    • git clone <URLFROMGITHUB>
  2. 連線到原始的Repository,因為如果原始的Repository內容有所改變時,我們希望能夠pull這些變化,所以新增一個遠端連結,並把它命名為’upstream’,命令如下:

    • git remote add upstream <URLFROMUPSTREAMGITHUB>
  3. 新增branch分支,並選用新增分支。避免與主分支master造成衝突,當我們在新增分支上完成了自己的功能後再合併到主分支,命令如下:

    • git branch <BRANCHNAME>
    • git checkout <BRANCHNAME>
    • git checkout -b <BRANCHNAME> –建立新的分支並切換到新的分支上
  4. 記錄,在我們自己的分支上修改後,需要記錄下來。

    • git status –檢視當前狀態
    • git add -A –記錄修改檔案,加上 -A,會將新增檔案跟刪除檔案的動作一起記錄下來
    • git commit -m "add a file" –提交全部修改
    • git checkout master –第二天開始工作前,切換到master分支
    • git pull origin master –從master的遠端分支拉取程式碼
    • git checkout <BRANCHNAME> –切換到task所在的本地分支
    • git rebase -i master –將master上的最新的程式碼合併到當前分支上,這裡的-i的作用是將我們 當前分支之前的commit壓縮成為一個commit,這樣做的好處在於當我們之後建立pull request並進行相應的code review的時候,程式碼的改動會集中在一個commit,使得code review更直觀方便
    • git push --set-upstream origin <my branch name> –最後,當task的所有編碼完成之後,將程式碼push到遠端分支
  5. 先獲取遠端,再提交,每次提交程式碼前,都需要先獲取最新程式碼,防止覆蓋他人程式碼

    • git fetch --dry-run –檢查遠端是否有變動
    • git pull –從遠端分支更新最新程式碼
  6. 建立Pull Requests,進入你的github專案頁,一般情況下 GitHub會檢測到你有了新的推送,會主動提示你,點選Create pull request,寫上說明,再按Send pull request就完成了,如果 Pull Request 沒有問題的話,很快就會被自動合併 merged 了哦!

  7. 本地合併分支,並刪除分支,將分支合併到主分支上,並刪除之

    • git checkout master –首先切換到主分支中
    • git merge <BRANCHNAME> –合併另一個分支進來
    • git branch -d <BRANCHNAME> –刪掉剛剛合併的分支
    • git push <REMOTENAME> --delete <BRANCHNAME> –也可以把合併分支從GitHub上的副本repository中刪除

其他常用命令

  • git init –將一個資料夾初始化為git倉庫
  • git status –檢查當前repository中的修改
  • git diff –檢視對檔案的修改
  • git add <FILENAME> –準備提交對於一個檔案的修改
  • git add . –準備提交對所有檔案的修改
  • git commit -m "<your commit message>" –提交你所準備好的修改,並附上簡短說明
  • git config --global user.username <USerNamE> –配置github賬號
  • git remote add <REMOTENAME> –新增遠端連結
  • git remote set-url <REMOTENAME> –對一個遠端設定地址
  • git remote add <REMOTENAME> <URL> –新增帶地址的遠端連結
  • git remote -v –檢視所有遠端
  • git pull <REMOTENAME> <BRANCHNAME> –從一個遠端收取更新(預設為主分支)
  • git push <REMOTENAME> <BRANCHNAME> –提交程式碼到指定遠端(預設為主分支)
  • git branch -M <NEWBRANCHNAME> –修改當前分支名字
  • git branch –列出所有分支
  • git clone <URL> –複製repository 到自己電腦