如何使用Github实现协同工作(例子:两人合作写代码) - Go语言中文社区

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


 

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 = username
  useHttpPath = 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)

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/Jenny_WJN/article/details/104209062
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 23:11:54
  • 阅读 ( 1483 )
  • 分类:Go开源项目

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢