GitHub再探,多人协作怎样用?
我胡汉三又回来啦,上篇《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再探,多人协作怎样用?