GitHub再探,多人协作怎样用?

作者 : 开心源码 本文共2282个字,预计阅读时间需要6分钟 发布时间: 2022-05-12 共174人阅读

我胡汉三又回来啦,上篇《GitHub初探,远程仓库怎样玩?》只提到了远程仓库和本地仓库的关联使用,这篇文章将继续记录我利用GitHub进行多人协作开发Android项目的经验。
假如你对我以前关于Git和GitHub的文章感兴趣可以点击阅读:
Git的安装与基本使用
GitHub初探,远程仓库怎样玩

1 主仓库建立分支

首先在主分支上建立一个分支,就起名为firstbranch吧。

2 协作者fork主仓库

而后用另一个GitHub账号左上角搜索框搜索TestForGit仓库,而后右上角点击Fork,就会把该仓库复制到你的GitHub账户中。

协作者打开自己主页,可以看到已经复制了一个同样的TestForGit仓库。

协作者复制自己仓库的网址,找个位置clone一下即可以复制到本地了。

git clone  LoserAndSeeker/TestForGit.git


3 问题之fork后与主仓库(原仓库)同步

这时候我们面临一个问题,你Fork之后你的远程仓库和原仓库并不会同步的,也就是说假如在你在本地修改的这段时间原仓库有了升级,你与原仓库的合并就会出现很多问题。
GitHub网页版并没有提供同步的功能服务,据说GitHub的桌面端有提供这种功能,但我没有用过。
经过多方查找资料我找到了两种方法可以让fork后的仓库与原仓库同步:
方法一 clone大法
协助者先把自己本地修改的仓库上传到协助者GitHub或者者建立一个分支,而后去clone原仓库的最新版本网址,复制到本地。
本地于是有了同一个项目的两个版本,一个是你的,一个是原仓库最新的。你可以将其与自己修改的分支合并,或者者Git pull你的远程仓库让其合并。
而别人GitHub上clone下来的仓库是无法push的,你可以输入:

git remote -v

这样可以查看到你的仓库是跟哪个远程仓库绑定的,

这是协助者的界面,却仍旧可以看出远程仓库地址是是原仓库


这时候你可以打开项目地址,进入.git下的config配置文件,

在箭头所指位置增加你的GitHub账号密码,而后把网址后面的客户名仓库名都改成你的,即可以将该仓库指向作为协作者的你的远程仓库了。


而后你再在Git bash 中输入“git remote -v”命令会发现,该仓库的指向已经变成你的了。
而后你即可以在本地修改了再push了,不过这种办法只适用一两次的升级操作,而且特别,,,怎样说呢,傻,所以我还是推荐下面的第二种。

方法二 fetch大法
第一步 配置原仓库路径

git remote add upstream  原仓库客户名/原仓库名.git

而后你可以继续输入:

git  remote -v 

而后便可以看到你的远程仓库已经多了一个原仓库地址。

第二步 抓取原仓库的修改文件

git fetch upstream

输入这条语句后,本地的Git就会自动抓取你配置的的原仓库最新版本文件,你接下来便可以将你本地的版本与原仓库最新版本合并。
但在合并之前最好将你本地的分支切换到主分支master。

git checkout master

第三步 合并远程原仓库的master分支

git merge upstream/master

到这个时候,你的本地仓库便已经与fork的原仓库完全同步了。当然,合并过程中可能会有冲突,处理后继续合并就是了。

4 协作者本地开发后,上传协作者远程仓库

协助者在自己的电脑上为项目增加了新的代码或者文件,怎样将这些升级推送到原仓库上呢?在没有增加SSH秘钥的情况,首先你要将自己的最新版本提交到自己的远程仓库。
现在协助者在TestForGit项目里新加了一个NewDocument.txt的文件,里面写了一句话。


而后push四连到协助者的GitHub上。

git add .git commit -m "NewDocument"git pullgit push

5 协作者远程仓库pull request到主仓库分支

现在协作者上已经有了新的修改,怎样才能把这个修改提交到原仓库上去呢?
这就要用到GitHub的pull request功能了。

协作者在自己的GitHub上依次点击pull request和New pull request,新建一个合并请求。


而后点击那个绿色的Create new request按钮,在输入备注信息后确认即可以了。

6 主仓库分支与master合并

现在我们回到主分支的视角,在原仓库的GitHub还是那个可以看到收到了一条pull request的信息。

我们点进去看一下,



可以看到已经收到了协作者发来的合并请求,信息表明了是LoserAndSeeker:master想要与主仓库lonelywilliam:firstbranch分支进行合并。

并且GitHub自动判断这个协助者分支与想要合并的原仓库分支没有冲突,你点一下Merge pull request 就会自动合并了。
不过先别急着点,主分支也要先确定一下协助者想要合并什么内容吧?万一不是自己想要的可不行,

而后确定这个请求可以接收后,点击之前绿色按钮Merge pull request,再填上备注后确认即可以自动合并了。


之后再回到原仓库的firstbranch分支,可以看到,已经新添了一个NewDocument文件,还有之前的提交记录。

7 原仓库的firstbranch与master分支合并

在上面那张图片可以看到,firstbranch分支旁边有一个New pull request按钮,点击这个按钮即可以让原仓库的分支与master主分支合并了。

剩下来合并的流程和上一步一样,我就不赘述了。
好了,我对GitHub远程仓库的探究就到此完毕了,感谢你的阅读!

《你今天真好看》

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » GitHub再探,多人协作怎样用?

发表回复