Github 可以满足多人协作开发项目的需求。在这里我简单记录一下如何两人合作完成代码。

方法一:邀请协同开发

这种方法邀请者和被邀请者有几乎相同的权限,被邀请者的push 操作无法被拒绝。邀请者和被邀请者使用同一个repository。

首先两个人(userA 和 userB)都需要有各自的github 账号,其中userA 邀请userB 来共同开发, 具体操作步骤如下:

第一步:邀请

userA 登入GitHub以后可以选择新建一个repository,将想要共同完成的工程上传,然后在当前repository的setting中,选择Collaborators,search user B, 向他发送合作邀请,当userB同意后,他就会出现在Collaborators栏目下(如下图所示)。

ps: userB的邀请信息以邮件方式发送给userB的注册邮箱,userB可以在那封邮件中点同意邀请

第二步: userB 修改代码

这里userB 首先需要下载一个git bash,下载地址:windows 版本。

下载完成后在电脑里会显示如下图,

点击Git Bash,

第一件事是登录自己的GitHub账号,输入

git config --global user.name "Your Name"(注意前边是“- -global”,有两个横线)
git config --global user.email "email@example.com"

登入以后,userB 可以将需要共同完成的工程clone 到本地,在git Bash 中输入

git clone https://github.com/userAname/repository_name

这样子会把工程下载到命令行对应的目录下,win+R >cmd 查看命令行地址,如果想改变clone的工程的存放地址,可以输入

git clone https://github.com/userAname/repository_name  D:/clone_file

其中“D:/clone_file”就是你想存放clone 工程的地址(请确保这个文件夹是空的,不然会出现fatal: destination path 'D:/clone_file' already exists and is not an empty directory.)

clone完成后,userB 就可以在本地修改工程内容了。

第三步,userB上传修改内容

当userB 完成修改后就可以提交了,首先到 D:/clone_file,右击这个文件夹,选择 Git Bash here,

然后在git Bash 中按第三步的方式登入GitHub,如果想看看自己修改了哪些部分,可以输入

git commit

上传修改,输入

git commit -a -m “change2”   或者

git add .

git commit -m "change2"

之后再输入 git push,就可以把修改上传到服务器,这时候userA 就可以看到自己GitHub 上面的项目更新了,如图:

如果userA 想把userB的修改更新到本地的话, 同样打开git Bash,登入GitHub账户,输入git pull,修改到本地。

同样,如果userA 修改了内容,userB 也可以使用git pull,把修改更新到本地。

方法二:fork仓库同步/pull

这个方法userA 和userB 使用不同的repository, 代码安全性高,但是管理好复杂。

第一步:fork 代码 clone 到本地

userA 新建了repository,上传了工程,邀请了userB以后,userB接受邀请以后,可以在GitHub上点击fork

把工程复刻到自己的repository中。然后再和上面一样,在git Bash 中把工程clone 到本地。但要注意的是,假设 repository name 为 test, 这里如果clone到本地  D:/clone_file 中,实际存放在 D:/clone_file/test 下,在git Bash 中要进入 test 文件夹下才能进行push 操作,进入该文件夹 输入 cd D:/clone_file/test。

第二步: 修改并上传

这里userB修改和上传的操作和前面的一样,但是这里要注意的一个问题是,当userB 做完修改,想要git push 的时候,可能会出现这样的错误

解决办法是:

在git push 之前,先输入

git config --global --edit

然后在显示出的内容的最后输入(按 i 开始输入)

[credential]helper = usernameuseHttpPath = true

然后按 alt + c 推出输入,英文模式下 按 ":wq" 退出。

然后再输入git push 将修改上传到服务器。不过这些改动只会上传到userB 的repository中,不会更改user A的repository。

第三步: 发起pull request

如果userB 希望自己的改动能同步到userA的工程中,就需要在Github 的repository 中发起pull request。

userA 就会在自己的Github上接收到pull request,(request 为0 是因为我把它处理了)

点进去就可以选择把userB 的修改merge 到自己的repository中。

参考:

1. GitHub 协同工作

2. git修改文件后,怎么提交到远程仓库

3. 如何将修改过后的文件通过git上传文件到GitHub

4. ! [remote rejected] master -> master (permission denied)

如何使用Github实现协同工作(例子:两人合作写代码)相关推荐

  1. 软件工程讲义 3 两人合作(2) 要会做汉堡包

    [上回书说到这里: http://www.cnblogs.com/xinz/archive/2011/08/07/2130332.html ] 很多同学憧憬在大型软件团队中和各式各样的人打交道, 推动 ...

  2. 《移山之道》第十一章:两人合作 读书笔记 PB16110698 第六周(~4.15)

     本周在考虑阅读材料时,我翻阅了<移山之道>,正好看到这一章:两人合作,心想:正好,我们正值结对作业的紧要关头,书中两人合作的宝贵经验和教诲应当对我们有很大帮助.于是,我开始一边在ddl苦 ...

  3. 构建之法---初识篇(软件工程师的成长和两人合作)

    这周主要看的是第三章和第四章:软件工程师的成长和两人合作,首先衔接上一次的第二章的内容,继续了解如何成为一个合格的软件工程师,当我们真正成为一个合格的软件工程师的时候,我们就应该进行团队合作了,首先从 ...

  4. 构建之法第四章--两人合作

    两人合作 这一章主要讲述代码规范,极限编程,结对编程,两人合作的不同阶段,影响他人的技巧. 这一章主要介绍代码的规范和代码复审,这个也是我们在编码过程中需要注意的,这样既可以方便别人,也方便了我们自己 ...

  5. 多人合作时代码提交 git 操作

    多人合作时代码提交 git 操作 在一个互联网公司,开发人员较多的情况下面肯定会有很多同学遇到过代码提交问题的,我自己在工作时代码提交就会遇到合并分支和拉取远端代码的情况.有冲突.修改错了分支需要重新 ...

  6. 两人合作的不同阶段和技巧

    1.      萌芽阶段 以跳舞为例,两人刚刚认识,拘谨而彬彬有礼.这一阶段的现象:两人刚刚相互认识,这时大家都有礼貌,一般交流不少,每个人都想得到对方的接纳,试图避免冲突和容易引起挑战的观点.对即将 ...

  7. vscode 程序员鼓励师_把软萌程序猿鼓励师装进 VScode 里?GitHub 2.5k 星标,爱上写代码...

    程序猿鼓励师一直都有相当大的潜在市场,尤其是程序员因为工作内心焦躁时,如果有妹子坐在旁边给他加油鼓劲,那么写代码就没有那么难了. 只不过,要找到一个愿意一边认真看你敲代码还一边鼓励你的妹纸可不是一件容 ...

  8. 俩人同样写代码,我拿七千他咋一万八...

    Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 作者丨不笑青年 漫画师:鹦鹉 来源丨不会笑青年(la ...

  9. 俩人同样写代码,我拿七千他咋五万八...

    抽奖赠书 下次你更希望我们送哪本书呢? 留言告诉我们!

  10. 俩人同样写代码,我拿七千他咋五万八...(文末送书)

    敲黑板!本次民工哥技术之路公众号联合机械工业华章图书为大家带来赠书福利(Java核心技术卷II),拼手气的时候到了,看看谁才是锦鲤? 点击下方名片回复关键字 Java核心技术 参与抽奖 规则: 1.民 ...

最新文章

  1. 2022-2028年中国煤及褐煤行业发展现状及未来前景分析报告
  2. 几张图帮你弄清楚什么是 RPC
  3. 手动安装oracle软件 删软件
  4. SQL SERVER-日期按时区转换
  5. access集团和abm_ACCESS集团宣布启动“ABM单创66会员狂欢节”
  6. go语言一天入门(下)
  7. LeetCode 290. 单词规律(哈希)
  8. php分析图片中水印的位置,关于ThinkPHP打水印及设置水印位置的分析
  9. 怎么关闭默认使用腾讯视频播放视频文件
  10. R语言向matlab转化,我有一段MATLAB的程序,现在想转换成R语言代码
  11. 第十五讲 循环体for基础
  12. php 数据访问框架,PHP Ice框架数据库访问层- Ice Framework(PHP Web开发框架)
  13. 瀚高数据库开启Oracle兼容模块
  14. 商品分类 商品类型 商品属性
  15. 百度网盘PC端扫描二维码登录时无法加载二维码问题解决方法
  16. Win2000XP服务与后门技术
  17. 快速提升SEO关键词搜索排名的5大伎俩
  18. mysql外键约束案例_详解MySQL中的外键约束问题
  19. 三年级计算机的组成教学设计,三年级计算机教学设计.docx
  20. iOS 12升级_iOS 12描述文件安装操作方法

热门文章

  1. 设置input框只能输入6位为数字的支付密码
  2. Js~弹出框插件jquery.boxy
  3. 稳压电源: 电路图及类型
  4. 怎样把可调DC-DC变身为数控稳压电源
  5. 手机电子书分享:大前研一经典《专业主义》
  6. C盘空间不足,压缩D盘后可扩展C盘空间
  7. SM2/RSA证书工具--简单CA实现
  8. 学习笔记-极客时间 玩转 git 三剑客 课程记录
  9. Visual C++网络编程经典案例详解 第5章 网页浏览器 CHtmlView类 实现查看源文件功能步骤
  10. Socket bind() error: invalid operands to binary expression