Git学习笔记:fork和clone的区别,fetch与pull的区别

 本文转自:http://blog.sina.com.cn/s/blog_4a0824490102wf5y.html  作者:ccpacer

fork:在github页面,点击fork按钮。将别人的仓库复制一份到自己的仓库。

clone:将github中的仓库克隆到自己本地电脑中

 

问题:pull request的作用

比如在仓库的主人(A)没有把我们添加为项目合作者的前提下,我们将A的某个仓库名为“a”的仓库clone到自己的电脑中,在自己的电脑进行修改,但是我们会发现我们没办法通过push将代码贡献到B中。

 

所以要想将你的代码贡献到B中,我们应该:

  1. 在A的仓库中fork项目a (此时我们自己的github就有一个一模一样的仓库a,但是URL不同)
  2. 将我们修改的代码push到自己github中的仓库B中
  3. pull request ,主人就会收到请求,并决定要不要接受你的代码
  4. 也可以可以申请为项目a的contributor,这样可以直接push
(2) fork了别人的项目到自己的repository之后,别人的项目更新了,我们fork的项目怎么更新?
答:首先fetch网上的更新到自己的项目上,然后再判断、merge。这里就涉及了下一个问题,pull和fetch有啥区别。
 
(3)fetch+merge与pull效果一样。但是要多用fetch+merge,这样可以检查fetch下来的更新是否合适。pull直接包含了这两步操作,如果你觉得网上的更新没有问题,那直接pull也是可以的。
 
参考文献:
1 http://www.tech126.com/git-fetch-pull/
3 https://ruby-china.org/topics/15729
 
==================================================

1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge
    
git fetch origin master
git log -p master..origin/master
git merge origin/master

    以上命令的含义:
   首先从远程的origin的master主分支下载最新的版本到origin/master分支上
   然后比较本地的master分支和origin/master分支的差别
   最后进行合并

   上述过程其实可以用以下更清晰的方式来进行:
   
git fetch origin master:tmp
git diff tmp 
git merge tmp

    
    从远程获取最新的版本到本地的test分支上
   之后再进行比较合并

2. git pull:相当于是从远程获取最新版本并merge到本地
   
git pull origin master

    上述命令其实相当于git fetch 和 git merge
    在实际使用中,git fetch更安全一些
   因为在merge前,我们可以查看更新情况,然后再决定是否合并

转载于:https://www.cnblogs.com/weberhuang/p/8939844.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值