git clone、git pull和git fetch的用法及区别

1.git clone

git clone顾名思义就是将其他仓库克隆到本地,包括被clone仓库的版本变化。举个例子,你当前目录比方说是在e:/course/中,此时若想下载远程仓库,本地无需git init,直接git clone url(url是你远程仓库的地址,直接复制就可以了)。执行git clone等待clone结束,e:/course/目录下自动会有一个.git的隐藏文件夹(如果看不见,请尝试设置隐藏文件夹可见),因为是clone来的,所以.git文件夹里存放着与远程仓库一模一样的版本库记录。clone操作是一个从无到有的克隆操作,再次强调不需要git init初始化。

git clone的用法:

$ git clone <版本库的url>

例如克隆TensorFlow:
$ git clone https://github.com/tensorflow/tensorflow.git

或者使用SSH协议:

$ git clone git@github.com:tensorflow/tensorflow.git

这样就会在本地生成一个目录,该目录与远程仓库同名。
However,如果本地目录不想与远程仓库同名怎么办??也有办法,将目录名作为git clone命令的第二个参数:

$ git clone <版本库的网址> <本地目录名>

2.git pull

git pull是拉取远程分支更新到本地仓库的操作。比如远程仓库里的学习资料有了新内容,需要把新内容下载下来的时候,就可以使用git pull命令。事实上,git pull是相当于从远程仓库获取最新版本,然后再与本地分支merge(合并)。
  即:git pull = git fetch + git merge
  
注:git fetch不会进行合并,执行后需要手动执行git merge合并,而git pull拉取远程分之后直接与本地分支进行合并。更准确地说,git pull是使用给定的参数运行git fetch,并调用git merge将检索到的分支头合并到当前分支中。

git pull的用法

$ git pull <远程主机名> <远程分支名>:<本地分支名>
举例:将远程主机origin的master分支拉取过来,与本地的branchtest分支合并。

$ git pull origin master:branchtest

如果将冒号和后面的branchtest去掉,则表示将远程origin仓库的master分支拉取下来与本地当前分支合并。
以上的git pull操作如果用git fetch来表示:

$ git fetch origin master:brantest
$ git merge brantest

相比起来,git fetch更安全也更符合实际要求,因为可以在merge前,我们可以查看更新情况,根据实际情况再决定是否合并。

3.git fetch 更新远程代码到本地仓库

理解 fetch 的关键, 是理解 FETCH_HEAD,FETCH_HEAD指的是: 某个branch在服务器上的最新状态’。这个列表保存在 .Git/FETCH_HEAD 文件中, 其中每一行对应于远程服务器的一个分支。
当前分支指向的FETCH_HEAD, 就是这个文件第一行对应的那个分支.
一般来说, 存在两种情况:

  • 如果没有显式的指定远程分支, 则远程分支的master将作为默认的FETCH_HEAD
  • 如果指定了远程分支, 就将这个远程分支作为FETCH_HEAD

git fetch更新本地仓库的两种用法:

# 方法一
$ git fetch origin master                #从远程的origin仓库的master分支下载代码到本地的origin maste
$ git log -p master.. origin/master      #比较本地的仓库和远程参考的区别
$ git merge origin/master                #把远程下载下来的代码合并到本地仓库,远程的和本地的合并
# 方法二
$ git fetch origin master:temp           #从远程的origin仓库的master分支下载到本地并新建一个分支temp
$ git diff temp                          #比较master分支和temp分支的不同
$ git merge temp                         #合并temp分支到master分支
$ git branch -d temp                     #删除temp

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/407194.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

求一个整数的阶乘结果中后缀0的个数

问题描述&#xff1a; 给一个整数&#xff0c;请输出该数字阶乘的后缀0的个数&#xff0c;例如&#xff1a; 数字7&#xff0c;它的阶乘为5040&#xff0c;后面有一个0&#xff0c;则输出1&#xff1b;还有数字10&#xff0c;它的阶乘为3628800&#xff0c;后面有两个0&#x…

(转载)Android两种Tab分页的方式:TabActivity和ActivityGroup以及Android项目几种常见的应用架构...

在Android里面Tab分页&#xff0c;常用的方法有两种&#xff1a; 一、TabActivity和TabHost的结合 1.主类继承TabActivity public class Tagpage extends TabActivity 2.获取当前TabHost对象 final TabHost tabHost getTabHost(); 3.添加Tab分页标签,这里就是关键&#xff0c;…

CSS3之Transition

css的transition允许css的属性值在一定的时间区间内平滑地过渡。这种效果可以在鼠标单击、获得焦点、被点击或对元素任何改变中触发&#xff0c;并圆滑地以动画效果改变CSS的属性值 1.语法&#xff1a;transition: property duration timing-function delay; 参数1&#xff1…

解决qrcode动态生成二维码时多次点击生成多个二维码的问题

getEwm(url){document.getElementById("qrcode").innerHTML "";var qrcode new QRCode(this.$refs.qrCodeUrl, {text: url,width: 200,height: 200,colorDark: #000000,colorLight: #ffffff,correctLevel: QRCode.CorrectLevel.H})},即生成二维码之前先将…

无线运维——J2ME和WAP运维方式的优缺点

随着信息技术的发展&#xff0c;软件产品进入了多接入渠道的新阶段&#xff0c;这些接入渠道既包括传统的Socket、Web等方式&#xff0c;也包含WAP, SMS,EMAIL等方式。网络管理软件作为软件产品的一个小的分支&#xff0c;在多接入渠道方面&#xff0c;也有了很大的发展。今天我…

没有光驱怎样从硬盘上安装Windows XP系统

不少朋友问我&#xff0c;电脑上的光驱坏了&#xff0c;要重装系统怎么办&#xff1f;下面我就给大家介绍如何从从硬盘安装系统。 一、准备工作 &#xff11;、准备一个原版XP SP3系统&#xff0c;用WINRAR解压把I386文件包直接提取出来。只需提取I386文件包,其它的不需要了。…

UVA 1025 A Spy in the Metro DP水题

简单DAG&#xff0c;每个状态有三种决策&#xff0c;原地傻等&#xff0c;上往左开的车&#xff0c;上往右开的车。 #include <cstdio> #include <cstring> #include <iostream> #include <map> #include <set> #include <vector> #includ…

CSS3之Transform

Transform字面上就是变形&#xff0c;改变的意思。在CSS3中transform主要包括以下几种&#xff1a;旋转rotate、扭曲skew、缩放scale和移动translate以及矩阵变形matrix 语法&#xff1a;transform: rotate | scale | skew | translate |matrix 1.旋转rotate rotate(<ang…

解决 “数据大屏“ 展示的屏幕适配问题

现在非常流行的大数据可视化方案&#xff0c;不过要做数据大屏有一个很重要的问题就是屏幕适配。 vue项目使用flexible.js和rem适配 vue中使用flexible.js实现屏幕自适应 一、引入flexible文件 flexible是移动端屏幕适配非常著名的的插件&#xff0c;能够帮助我们修改rem的值&…

论图书营销中的“托”

论图书营销中的“托” 一、引言 提到“托”&#xff0c;让我想起了小时候&#xff08;1987年左右&#xff09;发生在汉正街的一些关于“拖”的故事。这些故事大致的模式都差不多&#xff1a;若干人一伙&#xff0c;一部分人充当卖主&#xff0c;在街边摆个地摊&#xff08;不知…

共享内存---shmget shmat shmdt

From: http://fengxue103.blog.hexun.com/32303320_d.html 要使用共享内存&#xff0c;应该有如下步骤&#xff1a; 1.开辟一块共享内存 shmget() 2.允许本进程使用共某块共享内存 shmat() 3.写入/读出 4.禁止本进程使用这块共享内存 shmdt() 5.删除这块共享内存 shmctl()或者命…

React开发(127):引入icon的方式

新增 icon 步骤&#xff1a;1&#xff0c;找到对应icon库&#xff0c;然后点击下载至本地按钮。2&#xff0c;解压下载的文件&#xff0c;找到 iconfont.css 3&#xff0c;打开该文件&#xff0c;从第三个类开始复制&#xff0c;然后集体替换这个文件的第三个类

“入洞房与度蜜月”的来历

中华民族文明史距今已有五千多年了&#xff0c;人们把结婚仍然称为“入洞房”&#xff0c;尽管人类从洞穴式居住过渡到今天的高楼大厦&#xff0c;但入洞房这一名词至今仍未改变。从来没见过谁把“入洞房”改为“入楼房”。 传说&#xff0c;这是我们祖先轩辕黄帝规定下来的…

STL容器的capacity()和reserve()演示-----vector

#include <iostream>#include <vector>using namespace std;int main(){vector<int> v;cout<<v.size()<<", "<< v.capacity()<<endl;v.reserve(12);for(int i 0; i < 13; i) // 超出vector本身容量后&#xff0c;会导…

lua 的语法糖

tb {} function tb:fun1()self ---tb endfunction tb.fun2()self ---->无 endtb:fun1()tb.fun2()------self 相当于 this lua函有 tb.fun2() 这样的定义 没有this(self) tolua 加了对象定义 转载于:https://www.cnblogs.com/mattins/p/3967018.html

vue设置页面标题title

每个页面设置相同标题 index.html 直接修改title标签里面的标题 (ps: 这个html文件中也可以引入一些js文件) 每个页面设置不同标题 router - index.js const router new Router({mode: history,routes: [{path: /index,name: index,component: Index,meta:{// 页面标题ti…