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