使用Github进行协作开发

一、最基本的方式

首先负责人先创建一个仓库,然后在setting里的Collaborators中添加你的队友们。
这里写图片描述
输入队友们的github用户名,然后匹配到他们,点击添加,然后等待他们接受邀请。这样他们就有进入你的仓库的权限了,在本地将仓库克隆一下,就可以一起愉快的写代码了。

但是,这样比较麻烦,万一队友不小心把仓库东西都给你删了,岂不是很无奈。

二、使用fork

为了让彼此互不影响,可以让队友们将仓库fork成自己的仓库,然后分别进行开发。

1. 队友们点击仓库右上角的fork

这里写图片描述

2. 然后队友们将fork到的仓库克隆到他们的本地。

3. 给fork配置远程库

  • 查看远程状态
git remote -v

-确定一个将被同步给fork仓库的上游仓库

git remote add upstream 上游仓库地址

再次查看状态确认是否配置成功。

4. 同步远程仓库

  • 从上游仓库fetch分支拉取数据,并提交给本地master,会存储在upstream/master上
git fetch upstream
  • git fetch upstream
git checkout master
  • 将upstream/master分支上合并到本地master上,这样就会完成了同步,并且本地内容也不会丢失
git merge upstream/master
  • 将本地变动提交到Github的fork
git push origin master

5.将修改反馈给上游仓库

如果fork下来的项目领先或者落后上游分支,可以在网页上进行new pull request,并等待负责人审核是否同意采纳你的修改。

这里写图片描述

合并中的一些坑点

1. 分工一定要明确

fork这种方式每个人开发时独立的,看起来很友好,但是有时是very unfriendly,当我们将分支merge的时候,比较容易出现冲突,导致merge无法自动完成,我们必须手动来处理这些冲突。

我们开发的时候,分工一定要明确,不能让两个人都对一个文件进行操作,因为这样肯定会发生冲突。

2. 最好要忽略一些特殊的文件

这次开发的项目用IDEA来写,创建每个项目的时候会自动生成.idea文件,里面有些文件,比如workspace.xml,这个文件只要有改动在合并肯定会产生冲突,因为修改文件时工作环境一定会产生变化,所以在git push时,将.idea忽视即可,这样可以防止冲突的发生。修改仓库中.gitignore 文件,在里面加入:

*.idea/

ib文件夹中的jar文件也不会被上传,.gitignore默认是被忽视的,当我们项目在开发阶段,建议不上传这些文件(如果不忽视的话,每次pull和push都特别慢);到后期不需要经常变动,可以将所需的jar文件放上去。

项目中没有.idea/导致我们导入项目需要自己配置开发环境,比如web中设置JDK、源文件、资源文件、web目录、配置各种框架和web容器等,也不是很难,比一直发生冲突要好。

写在最后

如果在github上看到自己比较感兴趣的项目可以fork下来,然后自己在本地配置好环境将项目跑起来,看看能不能找出一些bug甚至修复这些bug,然后通过issues或者pull request反馈给仓库的所有者,为开源项目贡献自己的一份力。

猜你喜欢

转载自blog.csdn.net/dream0130__/article/details/80615132