最近一直焦虑换工作与面试,自然面试过程中也被问到了很多问题,在一家公司中,被问到了git相关的知识。
面试官提出了git clone 与 git pull有什么区别。由于自己对git的掌握情况不是特别深入,感觉瞬间被问蒙圈一样。后来,查了相关的文档,看了一些文章,自己有了一丁点的理解,觉得应该写下来。
从字面意思也可以理解,都是往下拉代码,git clone是克隆,git pull 是拉。
但是,也有区别:
从远程服务器克隆一个一模一样的版本库到本地,复制的是整个版本库,叫做clone.(clone是将一个库复制到你的本地,是一个本地从无到有的过程)
从远程服务器获取到一个branch分支的更新到本地,并更新本地库,叫做pull.(pull是指同步一个在你本地有版本的库内容更新的部分到你的本地库)
git pull相当于是从远程获取最新版本并merge(合并)到本地     git pull = git fetch + git merge,git fetch更安全一些
git clone是远程操作的第一步,通常是从远程主机克隆一个版本库,eg:$ git clone ##   该命令会在本地主机生成一个目录,与远程主机的版本库同名,如果要是制定不同的目录名,可以将目录名作为git clone 命令的第二个参数。eg:$ git clone #版本库网址# #本地目录名#     git clone支持多种协议,除了http(s),还有ssh,git,本地协议。
git pull 作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。它的完整格式稍稍有点复杂。eg:$ git pull ##远程主机(origin) #远程分之(next)#:#本地分之(master)#
如果远程分支是与当前分支合并,则冒号后面的部分可以省略。eg:$ git pull #远程主机(origin)#  #远程分之(next)# 相当于1. $ git fetch origin   2.$git merge origin/next 
在某些场合,git会自动在本地和远程分之之间,建立一种追踪关系。比如,在git clone 的时候,所有本地分之默认与远程主机的同名分之,建立追踪关系,也就是,本地的master分之自动“追踪”origin/master分之。git 可以手动建立追踪, git branch --set-upstream master origin/next   --->指定master分之追踪到origin/next。
如果当前分支只有一个追踪分支,连远程主机名都可以省略。$ git pull  表示当前分之自动与唯一一个追踪分之进行合并。

参考网址:http://www.yiibai.com/git/home.html

git clone与git pull区别相关推荐

  1. git init、git status、git config user.name、git add、git commit、git remote、git push、git clone、git pull

    1. Git本地仓库初始化 1.1 git init 功能 git init:初始化一个新本地仓库,它会在工作目录下生成一个.git的隐藏文件夹来管理仓库,千万不要删掉它. 1.2 git statu ...

  2. 关于Git中fetch和pull区别为

    关于Git中fetch和pull区别为: 一.对远端跟踪分支操作的权限不同 二.拉取后的操作不同 三.使用后commitID不同. 一.对远端跟踪分支操作的权限不同 1. fetch: fetch能够 ...

  3. git的一些简单命令(git clone,git branch,git checkout。。。)

    1.git clone 命令 $ git clone <版本库的网址> 比如,克隆jQuery的版本库. $ git clone https://github.com/jquery/jqu ...

  4. Git / git clone 、git pull 和 git fetch

    一.git clone Git 的 clone 命令的工作如下: 1.自动将远程主机命名为 origin,拉取它的所有数据. 2.创建一个指向它的 master 分支的指针,并且在本地将其命名为 or ...

  5. Git clone 与 Git Fork 的不同(Difference between Git Clone and Git Fork)

    Forking 与 Cloning 的主要区别 当你fork一个仓库的时候,你创建了一个原来仓库的副本,并且保留在你的GitHub账号里,但是clone是将仓库下载到本地. Forking is do ...

  6. 使用git clone 遇见git did not exit cleanly (exit code 128)的个人解决方案

          这是我第一次用git导出git clone到本地,却遇到了这问题:   我之所以会出现这个错误,是因为当时输入的时候输错了用户名 最后网上到处找方法原因, 发现可以通过修改凭据来更改这个错 ...

  7. 问题解决:使用GitHub时git push需要输入账号和密码Username for... (Use git clone SSH) git remote add 或set-url(推荐)

    一.问题描述 每次 gpm (git push origin master) 需要输入密码 二.解决方法 出现这个原因是你 git clone 时用了 https 地址,如果想不输入密码,应该用 ss ...

  8. git clone 只有.git文件夹 git status后发现文件夹全都被删除了

    近期在拉代码的时候,发现了个问题,拉下来的代码一致都报错,然后只有一个.git文件夹,使用git status发现,所有的文件都被删除了,根据系统提示的 **git restore --source= ...

  9. 解决git clone与git push出现的若干问题:Failed to connect to github.com port 443: Timed out

    折腾了一天多的时间,终于可以进行正常的git push与git clone操作了,用这篇博客来解决一下陆续出现的问题. 文章目录 1. 连接github失败问题汇总:Failed to connect ...

  10. github上git clone和git push速度太慢的解决办法

    修改hosts 先到https://www.ipaddress.com/上查询github.com和github.global.ssl.fastly.net最快的ip,然后在etc/hosts文件下新 ...

最新文章

  1. C++ template
  2. Nat. Commun. | 序列到功能的深度学习框架加速工程核糖调节剂设计和优化
  3. 【转】Angular学习总结--很详细的教程
  4. Qt中用QuaZip来压缩和解压缩文件
  5. nodejs中httpserver的安装和使用
  6. [云炬python3玩转机器学习]4-7机器学习算法训练和测试样本集数据同时归一化
  7. synchronized 底层如何实现?什么是锁升级、降级?
  8. objective-c 使用NSNumber 将int float long等数据类型加入到数组或字典中
  9. [转载]Qt之获取本机网络信息_vortex_新浪博客
  10. CGB2202面向对象第10天
  11. [Unity小游戏]打砖块(打方块)教程(超详细)
  12. 数显之家快讯:【SHIO世硕心语】小聪明毁大前程,所有人都应该深思!
  13. 基于JAVA学生用品交换平台计算机毕业设计源码+系统+数据库+lw文档+部署
  14. GRE新东方推荐学习方法(2010年左右)
  15. 股票分析及利用tushare查看股票部分信息
  16. 计算机网络安全-----Internet安全
  17. 数组遍历产生的索引越界问题
  18. dell perch330_重建Perch UI-而不是通常的重新设计
  19. MicroPython学习笔记(一) 格式字符串
  20. 新华字典 - Windows Phone

热门文章

  1. BF(暴力求解算法)
  2. UCweb等手机浏览器的盈利模式
  3. android 闪屏图片,Android的闪屏图像尺寸,以适应所有设备Android的闪屏图像尺寸,以适应所有设备(Andro...
  4. SAP 增强学习(4):四代增强 隐式增强(Enhancement-Point)
  5. 实时语音视频通话SDK如何实现立体声(一)
  6. 【JZOJ B组】【NOIP2013模拟】Heaven Cow与God Bull
  7. timus 1741. Communication Fiend URAL 解题报告 DP+读题
  8. eclipse安装tomcat时只有locahost,不显示server name
  9. php查询qq等级,php仿QQ等级太阳显示函数_php
  10. 【重磅】Crust主网进入节点接入阶段