git 进行版本控制流程
2014-10-21 23:53
316 查看
到apache spark 的 github 页面点击fork按钮
github账户中会出现spark这个项目
在本地电脑上使用如下命令,得到一个叫spark的文件夹
github账户中会出现spark这个项目
在本地电脑上使用如下命令,得到一个叫spark的文件夹
git clone https://github.com/darlwen/spark.git[/code]
进入该文件夹,使用如下命令添加apache/spark的远程地址git remote add upstream https://github.com/apache/spark.git[/code]
使用如下命令得到apache/spark的最新代码。当前在自己fork的spark代码仓库的master分支上,这个分支就留作跟踪upstream的远程代码git pull upstream master
接下来开始贡献自己的代码。 按照开发惯例,一般不在自己代码仓库的master上提交新的代码,而是需要为每个新的功能或者bugfix新增一个新的branch,使用如下命令创建一个新的分支,现在可以在这个新的分支上更改代码git checkout -b lda
添加代码并提交代码git add git commit -m "comments of your code"
提交pull request前合并冲突。在提交代码更新的过程中,经常遇到的一个问题是: 远程的upstream即(apache/spark)已经有了新的更新,从而导致在进行pull request时出现conflict。为了避免这个问题,可以在pull request前手动把远程其他开发者的commit与自己的commit合并。使用:git checkout master //切换到自己的主分支 git pull upstream master //拉出apache/spark的最新代码 git checkout lda //切换回lda分支 git rebase master // 将master的代码同步更新到lda中 git push origin lda //将自己在lda中的代码更新到自己github代码仓库的lda分支中去
提交pull request。这时候可以在自己的仓库页面跳转到自己的lda分支,然后点击new pull request. 按照spark的风格规定,我们需要在新的pull request的标题前加上JIRA代号。所以我们需要在https://issues.apache.org/jira/上创建一个新的JIRA, 例如https://issues.apache.org/jira/browse/SPARK-2859。然后将SPARK-2859这个代号加入到pull request的标题里。例如:https://github.com/apache/spark/pull/1782。
Pull Request的描述的写法很重要,有几个要点:
(1)在pull request中,一定要记得加上你提交的JIRA的URL, 方便JIRA系统自动的把Pull Request链接加上去,例如:https://issues.apache.org/jira/browse/SPARK-2859.
(2) pull request的描述要言简意赅,将清楚你要解决的问题是什么,你怎么解决的。可以多参考其他committer提交的PR。
等待Spark committer审核你的PR。如果需要进一步的修改,可以继续在本地的lda分支下commit新的代码,所有新的代码会在"git push origin lda"之后,自动被加入之前提交的pull request中,方便进 行问题的跟踪和讨论。
如果一切顺利,具有apache/spark.git写权限的committer就会将代码merge到apache/spark.git的master分支。
ps: 代码merge之后,就可以将lda这个分支删掉了。
参考:
How to use github pull request: https://help.github.com/articles/using-pull-requests
github的多人协作: https://gist.github.com/suziewong/4378619
How to rebase a pull request:https://github.com/edx/edx-platform/wiki/How-to-Rebase-a-Pull-Request
https://issues.apache.org/jira/browse/SPARK-2859
https://github.com/apache/spark/pull/1782
相关文章推荐
- 使用git进行版本控制
- 使用git进行版本控制
- git版本控制开发流程小结笔记(一)
- 在Xcode中使用Git进行源码版本控制
- 在Xcode中使用Git进行源码版本控制
- 使用git和github 进行代码的版本控制
- Git 系列之一:版本控制的概念、分布式、Git 简介及其工作流程
- 在Xcode中使用Git进行源码版本控制
- 在Xcode中使用Git进行源码版本控制
- 在Xcode中使用Git进行源码版本控制
- Git 系列之一:版本控制的概念、分布式、Git 简介及其工作流程-转载
- Git 系列之一:版本控制的概念、分布式、Git 简介及其工作流程
- 使用git 进行版本控制
- 在Xcode中使用Git进行源码版本控制
- 【Android(三)】采用Repo 和 Git 进行Android的版本控制
- 使用git进行版本控制
- 使用GitHub和Git进行版本控制
- 使用GitHub和Git进行版本控制
- 在Xcode中使用Git进行源码版本控制
- 如何利用Xcode中使用Git进行源码版本控制