今天在找一些javaweb的项目练练手的时候,因为有很多的项目在GitHub上,在拿的时候,看到很多的大佬都是说尽量点击star不要fork,刚开始以为是只是为了给自己涨人气的,后来看到一个人的评论才知道是为什么。
因为fork过来的项目源代码只是目前题主上传到GitHub的源代码,以后如果题主对源代码进行了修改,那么更改的源代码不会和fork过来的同时更改,也就是自己的源代码是过期的项目了,但是star就不一样了,GitHub上会将你star过的项目收集在你的star列表中,这样当你需要看源代码的时候就可以直接点击过去看到最新的源代码了。
但是如果想将项目在自己的电脑上跑起来的话在fork的同时也应该star下,毕竟题主辛辛苦苦将项目写出来并且将开发文档写到那么详细,点下star也是种素质。
但是我这人就是不想点start !
下面说下在fork别人的项目之后怎么保持和原作者项目进度一直的方法:
前提是你已经将代码克隆在本地的。
比如,我现在fork了sri的Mojo的项目,我的项目地址是https://github.com/iakuf/mojo,我现在克隆这个在我的本地中,
git clone https://github.com/iakuf/mojo
cd mojo
接着我只需要添加sri的项目地址,也就是主项目的remote地址,我们加入后,给代码fetch过来,然后进行merge的合并操作
git remote add sri https://github.com/kraih/mojo
git fetch sri #sri相当于一个别名
git remote -v #查看本地项目目录
git checkout master
git merge sri/master
如果有冲突的话,需要先丢掉本地的
git reset -hard sri/master
这样可以把你当前本地的项目变成和原作者主项目的进度保持一致了,然后你按照正常的流程进行修改并提交到你的项目中就可以了
git commit -am #更新到原作者的主分支的进度
git push origin
git push -u origin master -f #强制提交
以上就是将代码保持一致的方法,还有会有一些其他的问题,比如在fork一个项目之后,发现更新了再次fork但是代码仍然没有改变,这里可以看下这篇文章http://www.jianshu.com/p/704432a831dd