有时候我们在github上看到一些比较好的项目,我们都会fork一下它,然后在本地进行操作,但是fork之后,项目是不会跟源项目保持同步的,需要我们自己进行一些操作让其同步。

我们以最近Nutz成员正在开发的QA系统为例,假如我们clone自己fork过来的项目的保存路径为:~/ngqa_gevinhjy

具体操作如下:

1、打开Git Bash

2、进入~/ngqa_gevinhjy

3、为了让项目与源项目同步,我们首先要将源项目pull到本地

1git remote add ngqa https://github.com/howe/ngqa.git#添加一个别名,指向ngqa项目的位置
2git pull ngqa master #pull ngqa下面的master分支

github上fork别人项目后如何与源项目保持同步_master

ps:由于我刚刚执行过,因此显示的是全部都是最新版本。

4、将pull下来的代码push到自己的项目上面

1git push

github上fork别人项目后如何与源项目保持同步_开发_02
第一次push的时候,可能会出现上述的错误提示,原因是你没有为你的项目添加一个public key。

接下来我们为本机添加一个。
github上fork别人项目后如何与源项目保持同步_开发_03
github上fork别人项目后如何与源项目保持同步_public_04

复制id_rsa.pub里面的内容,进入项目主页,点击“Admin”按钮,选择“Deploy Key”,点击“Add deploy key”,将复制的内容粘在里面,如图:

github上fork别人项目后如何与源项目保持同步_master_05

6、添加完public key后,现在就可以push了。

github上fork别人项目后如何与源项目保持同步_如何_06

如上图,现在不会提示没有权限了,因为的版本是最新的,所以此处显示已是最新版本。

现在你可以去查看一下你的项目,是不是已经跟源项目同步了呢。

总结:假如你fork了几个项目,本人自己测试了一下,发现每push一个项目的时候,.ssh文件夹下面的id_rsa.pub的内容都必须重新生成,即在项目下通过ssh-keygen生成。建议每操作一次的时候,可以将原来的.ssh文件夹备份,下次使用的时候,只需要重命名为.ssh文件夹即可。

本文固定链接: http://gevin.me/370.html | Gevin's Blog