简概

  • 零、前期准备
  • 一、创建开发分支
  • 二、Fork项目到个人的仓库
  • 三、Clone项目到本地
  • 四、和团队项目保持同步
  • 五、push修改到自己的项目上
  • 六、请求合并到团队项目上
  • 七、团队项目负责人审核及同意合并请求

注:其中 零、一、七 是由团队项目负责人来完成的。 开发人员只要从 二 开始就行了。

零、前期准备

邀请协作,在setting中指定team和user,并确认邀请 <参考图01.png> 首先把队友直接push的权限关掉,即设置成Read

这样可以防止队友误操作,未经审核就把代码push到团队项目上。 Teams用来分配issue的时候会用到,所以保留下来,并不是没有用。

只有付费才有

一、创建开发分支

  1. master分支一般用来发布稳定版本
  2. dev分支(开发分支)用来发布开发版本。

输入分支名称后,下面会跳出Create branch,点击即可创建。

分支创建完毕后,会自动跳转到dev分支。

由于dev分支是从master分支上创建的,因此内容与master分支一致。

二、Fork项目到个人的仓库

点击右上角的Fork,并选择你的账号(一般在第一个)。 就可以Fork团队项目到个人仓库啦。

Fork完成进行下一步操作

三、Clone项目到本地

首先是clone git clone https://github.com/admkn/github-test-all.git

推荐使用SSH协议,用HTTP协议有时会出问题。

注意,这里clone的是自己仓库里的项目

此时只能看到master分支 并不会主动把dev分支clone下来

使用 git branch 命令查看本地分支,查看本地分支只有master分支

使用 git branch -a 查看所有分支,就能看到远程分支。

根据远程分支,可以创建一个新的本地分支dev 并把该项目远程的dev分支的内容放到本地dev分支

git checkout -b dev origin/dev 的意思是

  1. 创建一个dev分支(-b build
  2. 并把远程dev分支(origin/dev)的内容放在该分支内。
  3. 接着切换到该分支(checkout

参考图2

现在使用 git branch 可以查看两个分支 并且用 ls 或者 dir 就能看到dev分支的内容了。

想切换回master分支的时候,再用 git checkout master 即可。

上面的操作完成后,就可以在本地进行开发了。

开发

使用 git add 进行添加作出的更改 使用 git commit 进行提交更改到本地分支上 使用 git push 提交到自己远程仓库中的分支上(提交之前先fetch查看是否有冲突)

但是如果要将开发完的代码合并到远程团队项目上,还需要进行下面的操作。

四、和团队项目保持同步

首先查看有没有设置upstream映射关系,使用 git remote -v 命令来查看

或者git branch -vv


upstream

  1. 使用git在本地新建一个分支后,需要做远程分支关联。 > 如果没有关联,git会在pull的操作中提示需要的添加关联。
  2. 关联目的是在执行git pull, git push操作时就不需要指定对应的远程分支 > 只要没有显示指定,git pull的时候,就会提示
  3. 一般使用 checkout -b 本地branch 远程branch 就会自动指定upstream

解决方法

  • 使用 git branch -u origin/dev

    指定当前分支和远程分支为映射

  • 或者

    git branch --set-upstream-to=origin/dev

接着再次使用 git branch -vvgit remote -v ,显示出了upstream 关系,那么就设置好了

参考图3

  • 撤销本地分支与远程分支的映射关系 git branch --unset-upstream

开始同步

  1. 首先执行 git fetch origin 获取远程团队项目最新版本。

    此时并没有把最新版本合并到本地的分支上,因此还需要一步。

  2. 当前分支是dev分支,执行 git merge origin/dev dev 命令

    会将源分支(origin/dev)合并到当前分支(dev

  3. 如果是在本地的master分支上开发,那么在使用该命令前,先切换到master分支。

    merge的时候,有可能碰到冲突。

    需要解决冲突才能继续下面的操作

五、push修改到自己远程的项目上

解决冲突后,就可以使用 git push 命令将本地的修改同步到自己的GitHub仓库上了。

注意

  1. 在当前所在分支使用push,会push到与这个分支相关联的远程仓库分支。
  2. 这里dev分支与origin/dev关联,因此pushGitHub上的dev分支。

参考图4

六、请求合并到团队项目上

  1. 首先到的GitHub上,进入对应仓库里。

  2. 点击Compare & Pull request

  3. 根据箭头确定从自己仓库到基础团队仓库上

点击 Create pull request 就可以发送合并请求了。

当然,在发送请求之前,可以检查一下都改了哪些东西。 在上面那个页面往下拉,就可以看到两者的对比。

以上操作结束后,团队成员的流程就结束了。 最后一步交给团队项目负责人来完成。

或者你是协助者,有权限去直接同意合并

七、团队项目负责人审核及同意合并请求

首先进入GitHub的团队项目仓库中。此时右边的Pull requests显示当前项目有几个Pull request

选择一个Pull request

项目负责人审核有两个要注意的地方

  1. 一定要看清楚是合并到哪个分支。 这里是从一个仓库的dev分支合并到base的dev分支。
  2. 点击进去后,就可以查看该Pull request对项目做了哪些修改。 这样如果有问题,可以及时发现,并关闭该Pull request。

如果关闭了,一定要告诉队友,否则他可能会不知道。 虽然也可以直接在下面发布Comment告诉他,但队友不一定看到。

如果没有问题,可以点击Merge pull request

附加

回退版本

  1. 根据之前提交的pr1进行回退revert ,创建另一个PR2,执行回退,让有权限的人进行确认回退 实现是,创建一个这个pr1合并之前的分支revert分支进行和现在的分支pr3请求,然后合并,(把之前的操作都回退回去)然后可以删掉该revert分支
  2. 该删除的revert分支,仍可以restore,拿回
  3. 同样该pr3仍可revert,进行回退,无穷无尽