首页 > 其他分享 >Git必知必会基础(16):git clone、git pull、git fetch、git push的区别

Git必知必会基础(16):git clone、git pull、git fetch、git push的区别

时间:2024-01-27 20:07:22浏览次数:23  
标签:origin pull git 16 本地 fetch 分支

 

git clone

没有本地仓库,将远端的整个项目下载到本地

 

git pull

本地已经有项目但不是最新(比如你的同事往远处仓库提交了代码),从远程获取最新版本并merge到本地,也就是将远程指定分支拉取到本地指定分支上

命令格式:

git pull [远程仓库名] [远程分支名]:[本地分支名]

本地分支是当前分支,本地分支名可以省略:

git pull [远程仓库名] [远程分支名]

git pull = git fetch + git merge

示例:git pull origin dev = git fetch origin dev + git merge fetch_head,fetch_head就是origin/dev

 

git pull --rebase

本地已经有项目但不是最新(比如你的同事往远处仓库提交了代码),使远程库和本地库同步

git pull --rebase = git fetch + git rebase

--rebase的作用是取消掉本地库中之前的(也就是共同节点之后的提交)commit,并把他们接到更新后的版本库之中

示例:git pull --rebase origin master

 

git fetch

本地已经有项目但不是最新(比如你的同事往远处仓库提交了代码),使本地库和远程库同步,不会和本地分支自动merge,比git pull安全一些

先git fetch,然后git merge将远程的变更合并到本地仓库

一般使用步骤是:

1、将远程仓库的master分支下载到本地当前branch中
git fetch orgin master

2、比较本地的master分支和origin/master分支的差异
git log -p master  ..origin/master

3、进行合并
git merge origin/master

 

另外:git fetch origin master:tmp,如果tmp分支在本地不存在会创建

 

git push

将本地当前分支推送到远程指定分支上

命令格式:

git push origin <本地分支名>:<远程分支名>
  
将本地当前分支推送到与本地当前分支同名的远程分支上,远程分支名可以省略:

git push origin <本地分支名>

 

另外,将本地分支与远程同名分支相关联:git push --set-upstream origin <本地分支名> ,或者 git push -u origin <本地分支名>

 

补充:

1、分支顺序写法是<来源地>:<目的地>,所以git pull是<远程分支>:<本地分支>,而git push是<本地分支>:<远程分支>

2、无论是pull还是pull --rebase,或者是push,都是正对commit后的数据,修改但未提交到暂存区,或者已提交到暂存区但是没有commit,都是没法pull,也没法push的。

 

【bak】

 

 

 

__EOF__


本文作者:持之以恒(韧)
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等


标签:origin,pull,git,16,本地,fetch,分支
From: https://blog.51cto.com/qzcsbj/9444204

相关文章

  • 无法访问Github仓库的极简治标法
    Github访问受限,是国内众多IP所经常面临的问题。这里我经过大量的踩坑之后,还是认为使用Gitee将Github的仓库直接同步过来,作为一个私有的镜像,是最便利高效的方法。当然,这个只能满足日常使用第三方库的需求,治标但不治本,对于那些仅仅只是想使用某些Github仓库代码的童鞋来说,也......
  • 洛谷题解-P1673 [USACO05FEB] Part Acquisition S
    https://www.luogu.com.cn/problem/P1673题目描述奶牛们接到了寻找一种新型挤奶机的任务,为此它们准备依次经过N(1≤N≤5×104)N(1\leN\le5\times10^4)N(1≤N≤5×104)颗行星,在行星上进行交易。为了方便,奶牛们已经给可能出现的K(1≤K≤103)K(1\leK\le10^3)K(1≤K≤103)......
  • 程序员必备!10款实用便捷的Git可视化管理工具
    前言俗话说得好“工欲善其事,必先利其器”,合理的选择和使用可视化的管理工具可以降低技术入门和使用的门槛。我们在团队开发中统一某个开发工具的使用能够大大降低沟通成本,提高协作沟通效率。今天给大家分享10款实用便捷的Git可视化管理工具,注意排名不分先后希望能对各位小伙伴有......
  • gitlab修改 克隆地址(内网-外网)
    修改gitlab克隆地址1、打开gitlab我们看到的gitlab克隆地址  2、进入容器修改配置文件dockerexec-itgitlabbash   #进入容器 vim/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml  #修改配置文件host修改为gitlab服务器的IP地址 3、重启g......
  • [office] Excel2016瀑布图怎么做?Excel2016瀑布图绘制教程
    瀑布图源于形似瀑布,常用来反映数个特定数值之间的数量变化关系Excel2016瀑布图绘制教程新建一个EXCEL表格,输入数据。最好是增量、减量数据,这样做出的瀑布图才有对比。在数据区域单击右键,依次点击“插入”—“图表”—“所有图表”,选择“瀑布图”点击“确定”,生成瀑布图。从图中可以......
  • 4、Git远程仓库
    4.1、常用的托管服务[远程仓库]前面我们已经知道了Git中存在两种类型的仓库,即本地仓库和远程仓库。那么我们如何搭建Git远程仓库呢?我们可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有GitHub、码云、GitLab等。gitHub(地址:https://github.com/)是一个面向开......
  • 为什么 Redis Cluster 是16384个槽位
    为什么RedisCluster是16384个槽位正常的心跳数据包携带节点的完整配置,它能以幂等方式来更新配置。如果采用16384个插槽,占空间2KB(16384/8);如果采用65536个插槽,占空间8KB(65536/8)。RedisCluster不太可能扩展到超过1000个主节点,太多可能导致网络拥堵。16384个插......
  • 3、Git安装与常用命令
    本教程里的git命令例子都是在GitBash中演示的,会用到一些基本的linux命令,在此为大家提前列举:ls/ll查看当前目录cat查看文件内容touch创建文件vivi编辑器(使用vi编辑器是为了方便展示效果,学员可以记事本、editPlus、notPad++等其它编辑器)3.1、Git环境配置3.1.1下......
  • P3146 [USACO16OPEN] 248 G
    原题链接题解1:\(Code\)#include<bits/stdc++.h>usingnamespacestd;inta[255]={0};intf[255][255]={0};intmain(){intn,ans=0;cin>>n;for(inti=1;i<=n;i++){cin>>a[i];f[i][i]=a[i];an......
  • git空文件夹问题
    git在使用gitstatus时是不会显示空文件的,同时它也不能被放入暂存区 当我向空文件(first)加入文件时此时才可以将first放入暂存区......