git Pull Request工作流程的整合

作者: shaneZhang 分类: 互联网技术 发布时间: 2016-04-28 12:02

git Pull Request工作流程的整合

fork项目

  1. fork项目,到网站上点击一下fork按钮,将项目复制到自己的工程中。
  2. 设置remote地址

    ➜ Desktop git clone ssh://root@code.5288z.com:24/zhangyuqing/PullRequestTest.git
    Cloning into ‘PullRequestTest’…
    remote: Counting objects: 5, done.
    remote: Compressing objects: 100% (4/4), done.
    remote: Total 5 (delta 0), reused 0 (delta 0)
    Receiving objects: 100% (5/5), done.
    Checking connectivity… done.
    ➜ Desktop cd PullRequestTest
    ➜ PullRequestTest git:(master) git remote -v
    origin ssh://root@code.5288z.com:24/zhangyuqing/PullRequestTest.git (fetch)
    origin ssh://root@code.5288z.com:24/zhangyuqing/PullRequestTest.git (push)
    ➜ PullRequestTest git:(master) git remote add upstream https://code.5288z.com/test/PullRequestTest.git
    ➜ PullRequestTest git:(master) git remote -v
    origin ssh://root@code.5288z.com:24/zhangyuqing/PullRequestTest.git (fetch)
    origin ssh://root@code.5288z.com:24/zhangyuqing/PullRequestTest.git (push)
    upstream https://code.5288z.com/test/PullRequestTest.git (fetch)
    upstream https://code.5288z.com/test/PullRequestTest.git (push)

创建你自己的topic branch

➜  PullRequestTest git:(master) git checkout -b testBranch
Switched to a new branch 'testBranch'

在自己的topic branch上完成自己的工作

当你在主题branch下工作,想要导入来自上游库的(与你当前的工作不冲突的情况下)更新时,使用git rebase。

➜  PullRequestTest git:(testBranch) echo 'I love you' > test.txt
➜  PullRequestTest git:(testBranch) ✗ git add test.txt 
➜  PullRequestTest git:(testBranch) ✗ git commit -m 'add test.txt'
假设上游branch为upstream/master
➜  PullRequestTest git:(testBranch) git fetch upstream
From https://code.5288z.com/test/PullRequestTest
 * [new branch]      master     -> upstream/master
➜  PullRequestTest git:(testBranch) git rebase upstream/master testBranch
Current branch testBranch is up to date.

发送一个Pull Request

在网站界面上,左边选择base branch,右边选择head branch。base branch为master,head branch为testBranch。填写创建合并请求的标题和修改更新日志说明,并创建合并请求。

一旦你从自己的主题branch(例如testBranch)推送了一条Pull Request,那么在这条Pull Request被关闭之前,再次向这个branch里push代码,所有的commits都会被自动追加到这个Pull Request后面(不需要再另开Pull Request)。

这个功能尤其有用,比如你最初提交的Pull Request里存在某些问题,项目维护者要求你打回去修改;或者要求你给你的新feature添加一条相应的unit test(这种情况简直太常见了)。只要追加commits到你的这个主题branch中即可。

Pull Request发送之后

  • 针对项目维护者。git pull和git merge是最常用的merge Pull Requests的方式,在命令行下merge之后,PullRequest也会相应地自动关闭。或者在网站上点击同意合并。
  • 针对开发者,如果项目维护者同意合并之后,可以将本次多余的branch来进行删除。

    git branch -d testBranch
    ➜ PullRequestTest git:(master) git branch -r -d origin/testBranch
    Deleted remote-tracking branch origin/testBranch (was 49b74af).
    ➜ PullRequestTest git:(master) git pull upstream master
    ➜ PullRequestTest git:(master) git push

参考文章

本页面支持繁体中文友好显示:git Pull Request工作流程的整合

如果觉得我的文章对您有用,请随意打赏。如果有其他问题请联系博主QQ(909491009)或者下方留言!

发表回复