git 进行版本控制流程

  1. 到apache spark 的 github 页面点击fork按钮
  2. github账户中会出现spark这个项目
  3. 在本地电脑上使用如下命令,得到一个叫spark的文件夹
    git clone https://github.com/darlwen/spark.git
  4. 进入该文件夹,使用如下命令添加apache/spark的远程地址
    git remote add upstream https://github.com/apache/spark.git
  5. 使用如下命令得到apache/spark的最新代码。当前在自己fork的spark代码仓库的master分支上,这个分支就留作跟踪upstream的远程代码
    git pull upstream master
  6. 接下来开始贡献自己的代码。 按照开发惯例,一般不在自己代码仓库的master上提交新的代码,而是需要为每个新的功能或者bugfix新增一个新的branch,使用如下命令创建一个新的分支,现在可以在这个新的分支上更改代码
    git checkout -b lda
  7. 添加代码并提交代码
    git add

    git commit -m "comments of your code"
  8. 提交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分支中去
  9.  提交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。

  10. 等待Spark committer审核你的PR。如果需要进一步的修改,可以继续在本地的lda分支下commit新的代码,所有新的代码会在"git push origin lda"之后,自动被加入之前提交的pull request中,方便进      行问题的跟踪和讨论。
  11.  如果一切顺利,具有apache/spark.git写权限的committer就会将代码merge到apache/spark.git的master分支。

    

     

posted @ 2014-10-21 23:53  darlwen  阅读(322)  评论(0编辑  收藏  举报