Github提交PullRequest工作流程:
以Kubernetes為例
1. Fork Kubernetes到自己的Github目錄
訪問:https://github.com/kubernetes/kubernetes
點擊Fork,就可以在自己的Github目錄下找到kubernetes這個項目了。
這里以https://github.com/edisonxiang/kubernetes為例。
2. 下載代碼到本地工作目錄
git clone https://github.com/edisonxiang/kubernetes.git
3. 設置代碼的UpStream原始目錄
cd kubernetes
git remote add upstream https://github.com/kubernetes/kubernetes.git
# Never push to upstream master
git remote set-url --push upstream no_push
# Confirm that your remotes make sense
git remote -v
4. 在本地獲取最新的UpStream版本
cd kubernetes
git fetch upstream
git checkout master
git rebase upstream/master
5. 分支新branch並提交修改(類似OpenStack社區)
cd kubernetes
# Add new branch myfeature
git checkout -b myfeature
# Add Commit Message File
vi .git/message
# Add User Email and User Name
git config --global user.email "xiang.edison@gmail.com"
git config --global user.name "edisonxiang"
# Add or Modify files in kubernetes
......
# 提交到Git本地
git add .
# 完成Commit
添加:git commit -a -F .git/message
修改:git commit --amend -a -F .git/message
修改:git commit -m "Modify some thing"
# 輸入Github用戶名和密碼提交本地的修改到自己的Github項目中
git push -f https://github.com/edisonxiang/kubernetes myfeature
# 更新本地代碼到個人倉庫
git push origin master
# 刪除個人倉庫的分支
git push origin :myfeature
# Rebase未合入的PR到個人倉庫
git fetch upstream pull/56136/head:BRANCHNAME
# 有時需要將瑣碎的多個commit結合起來形成這一個需求的完整commit。
git log 查看下日志,並判斷需要將多少個日志合並
git rebase -i HEAD~6 把頂部的六個版本聚到一起進入編輯頁面
把需要壓縮的日志前面的pick都改為s(squash的縮寫)
注意必須保留一個pick,如果將所有的pick都改為了s那就沒有合並的載體了就會報如下錯誤
依次輸入CTRL+X Y ENTER三個命令完成編輯。
最后Git Push orgin branchname
# Cancel current local changes
git checkout .
git checkout localfile
6. 訪問自己的Github項目創建Pull Request
訪問自己的Github地址:https://github.com/edisonxiang/kubernetes
在新上傳的Branch上,點擊Compare & Pull Request按鈕創建一個Pull Requst
最后在https://github.com/kubernetes/kubernetes/pulls就可以找到剛剛提交的Pull Request。
printenv