Git在工作中常见的两种开发模式
参考:https://my.oschina.net/u/4000302/blog/3032762?tdsourcetag=s_pctim_aiomsg
恰好两种模式在工作中都有用过,这里我目前使用Merge Request的开发模式.由于在使用git重新在一台新电脑上拉代码代码时发现有些git操作有些生疏了,所以在此记录一下这种模式的具体使用方法和流程.
1.工作流程
首先在这种开发模式中,我们是没是没有上游仓库的push权限的,所以我们不能直接通过clone上游分支的代码来进行开发,而是要fork一份代码到自己的仓库并在自己的仓库上做开发.   那么当上游仓库有更新时我们怎么同步上游的仓库的代码呢?答案就是通过分支操作来实现,我们可以通过git命令git remote add upstream来设置上游地址,通过fetch和checkout可以将上游分支的代码拉取到本地来,每次更新先pull一下,上游分支只需要将上游分支与本地开发的分支merge,就可以保证本地使用的是最新的代码,  当我们的远程仓库有代码需要他比较到上游仓库是就使用merge request就可以提交上去了 
2.git上的操作
1.fork上游仓库的代码到自己的仓库 
这样代码就fork到我们自己的repository来了  2.本地clone项目:  使用git clone 命令将代码clone到本地
git clone http://gitlabcode.远程仓库地址.com/liufeng/xxxxx-back.git
clone完后进入到项目目录  输入命令设置上游分支:
remote add upstream http://gitlabcode.上游仓库代码地址.com/liuhaha/noah-ark-back.git
使用git remote -v查看是否添加成功 
3.idea上git操作
此时打开idea,fetch一下就会出现所有上游的分支  把上游仓库分支checkout到本地,我习惯将用来进行同步的分支(通常是master)命名为remote  当我需要将上游仓库的mater分支和我本地的dev分支合并时,需要先切换到remote分支pull一下更新一下代码,在切回dev分支选择remote点击merge into current操作,这样dev就和上游的master分支合并了 
4.提交pull request
当我需要将本地的dev分支合并到上游的master分支时只需在git上创建一个pull request即可 
|