GitHub工作流程

创建项目

  • fork公司项目到自己的仓库
  • 复制自己仓库的项目地址将项目clone到本地
    git clone https://github.com/Sara3104/{项目名}.git
    这样remote里面的origin就是自己仓库的项目了
  • idea打开工程后tools->VCS->git->remote 增加一个名为upstream的远程仓库,指向对应的公司项目地址,用于pull。也可用命令行
    git remote add upstream [url]

工作并提交代码

  • 假设公司主分支为master,那么把本地代码的master分支作为同步分支,工作开始时从本地的master分支checkout一个工作分支,我一般命名为dev
    git branch dev
    git checkout dev
  • 多人合作的情况下,在dev分支上完成工作后,首先需要提交代码至本地代码库。我一般采用图形界面(缺图)
  • 其次需要pull公司分支的更新
    git pull upstream master
    如果没有冲突的话就自动合并了,如果有冲突的话在dev分支上处理冲突之后提交修改至本地代码库
  • 完成后将本地代码库的修改提交到自己的远程仓库的dev分支
    git push origin dev
    如果远程仓库没有dev分支的话会自动构建
  • push成功后在dev分支会显示"This branch is n commits ahead 公司名:分支名" 表示你的dev分支比公司分支提前n个commit. behind则表示你应该pull代码了。


  • 然后点击上方的New pull request创建pr,等待review后合并。如果合并者选择的是第二种方式


    合并方式

    那么这个pr中的所有commits会变成公司主分支的一个commit


该commit的message为对应pr的title

为下次提交所做的准备

  • 假设之前的pr中有10个commit,如果采用第二种方式进行合并之后,主分支的commit数+1,但自己仓库的dev分支则有10个commit,那么会提示"This branch is 10 commit ahead, 1 commits behind 公司名:分支名."这样就意味着自己的dev分支已经与公司的主分支产生了不同步,需要删除本地和远程的dev分支。
    git push origin --delete dev 删除自己远程仓库的dev分支
    git branch -D dev 删除本地代码库的dev分支

注意下次工作前创建dev分支前可以先更新一下同步分支,使用git pull即可。因为不使用同步分支提交代码,所以同步分支永远不会在pull的时候产生冲突。

注意事项

  • 新建dev分支用于提交代码是因为公司远程分支采用了第二种合并方式,所以每次pr合并之后应该立刻删除自己本地和远程的dev分支,否则下次提交的时候就会把之前不同步的10个commit也提交上去(虽然这种情况下files change不会有这10个commit的内容)
  • 创建pr的时候可以通过查看自己分支的commit数和公司主分支的commits数来确定自己的分支是否干净
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容