GitHub上fork项目和clone项目的区别
fork:在github页面,点击fork按钮,将别人的仓库复制一份到自己的仓库。
clone:直接将github中的仓库克隆到自己本地电脑中
问题1:pull request的作用
比如在仓库的主人(A)没有把我们添加为项目合作者的前提下,我们将A的某个仓库名为“B”的仓库clone到自己的电脑中,在自己的电脑进行修改,但是我们会发现我们没办法通过push将代码贡献到B中。
所以要想将你的代码贡献到B中,我们应该:
- 在A的仓库中fork项目B (此时我们自己的github就有一个一模一样的仓库B,但是URL不同)
- 将我们修改的代码push到自己github中的仓库B中
- pull request ,主人就会收到请求,并决定要不要接受你的代码
Github上fork项目后与原项目保持同步
步骤
假设来源为 https://github.com/_original/_project.git
fork 项目为 https://github.com/_your/_project.git
-
检出自己在github上fork别人的分支到目录下
git clone https://github.com/_your/_project.git
-
进到 _project 目录下,然后增加远程分支(fork的分支),名为 update_stream(名字任意)到本地
git remote add update_stream https://github.com/_original/_project.git
-
运行命令:
git remote -v
, 会发现多出来了一个update_stream的远程分支git remote -v
-
然后把远程原始分支 update_stream 的代码拉到本地
git fetch update_stream
-
合并对方远程原始分支 update_stream 的代码
git merge update_stream/master
-
最后把最新的代码推送到你的github上
git push origin master
-
如果需要给update_stream发送Pull Request
打开
https://github.com/_your/_project.git
点击Pull Request -> 点击New Pull Request -> 输入Title和功能说明 -> 点击Send pull request
参考资料
- GitHub上fork项目和clone项目的区别
https://www.cnblogs.com/leiblog/p/10898745.html - Github上fork项目后与原项目保持同步
https://www.cnblogs.com/relucent/p/6479213.html