小工具      在线工具  汉语词典  css  js  c++  java

git merge、git pull和git fetch

# Git,git,github,gitee 额外说明

收录于:156天前

在这里插入图片描述

git merge 合并分支,将目标分支合并到当前分支

git fetch  更新远端分支,但不会merge到本地

git pull   更新远端分支并merge到本地

git pull = git fecth + git merge

merge的意思为“合并”,git merge命令是用于将分支合并在一起的操作,就是将目标分支合并到当前分支。

git fetch

git fetch用于更新分支,在一段内其他开发者新建了其他分支,使用该命令将分支信息重新拉取到本地。如下

在gitee上创建了一个xiaoxu的分支
在这里插入图片描述

但是查看远程分支还是只有master分支,这是由于该次分支查询是上一次的缓存,而最新的分支信息未更新。
在这里插入图片描述

使用 git fetch 命令更新分支。最新分店信息更新如下

在这里插入图片描述

对远程仓库分支的所有更新都将在本地检索,无需对代码进行任何更改。对本地开发代码没有影响:

git fetch <远程主机名>

您还可以更新指定的分支,如下所示:

git fetch <远程主机名> <分支名>

在本地新建xiaoxu分支,并将远程源站仓库的master分支代码下载到本地xiaoxu分支:

# git fetch也可以下载远程分支到本地分支
# 在本地新建一个xiaoxu分支,并将远程origin仓库的master分支代码下载到本地xiaoxu分支

git fetch origin master:xiaoxu

git fetch 仅用于更新分支信息,不会更改代码。它对本地分支上的代码没有影响。

git merge

在 Git 中,合并是加入分叉历史的过程。它将两个或多个发展历史连接在一起。 git merge 命令可以帮助你将 git 分支创建的数据集成到一个分支中。

git merge 命令用于合并分支。该命令的语法如下:

git merge <query>

该命令会将指定的内容合并到当前分支中。命令的参数可以是提交内容的ID,也可以是某个分支的名称。当为ID时,提交的内容合并到当前分支中。当为分支名称时,指定的分支将合并到当前活动的分支中。在树枝上。

在这里插入图片描述

git的设计模式merge冲突

Git 是协作的,这意味着任何成员都可以创建自己的分支并提交代码。如果要合并的两个分支都修改了同一个文件的相同部分,Git 无法确定应该使用哪个版本的内容,需要人工干预才能继续合并。这样的设计原则更有利于尺寸码的安全。

提交代码时如何避免和解决冲突?

  1. git status命令查看当前分支的状态,确保HEAD指正指向的是正确的接收合并的分支。如果不是,执行git checkout命令切换到正确的分支。
  2. 确保合并操作涉及的两个分支都更新到远程仓库的最新状态。执行git fetch拉取远程仓库的最新提交。
  3. 在编写代码是执行git merge命令,将代码融合到主分支上,确保提交内容都是最新内容。(2,3可以直接用git pull代替)

即使采取了上述步骤,协作开发过程中仍然会遇到冲突,需要人为干预来解决冲突。

在这里插入图片描述

在本地模拟冲突,在主分支的基础上创建一个新分支,修改两个分支中相同的内容,并将主分支提交到远程仓库。如果在本地切换分支,会遇到git推送冲突的情况。

  1. 执行git status命令查看是否存在冲突

如果出现类似下面的输出,则说明当前文件存在冲突

On branch master

You have unmerged paths.

  (fix conflicts and run "git commit")
  • 查看冲突内容,当Git在合并过程中碰到了冲突,它会编辑受影响的文件中的相关内容,并添加视觉标记用以展示冲突中双方在此部分的不同内容。
    git diff --name-only --diff-filter=U

其中--name-only参数表示只显示文件名,--diff-filter=U 参数表示显示冲突文件。

<<<<<<< HEAD

这里是本地修改的内容

=======

这里是远程修改的内容

>>>>>>> branch_name

======= 之前表示本地修改的内容,之后表示远程修改的内容。

找到本地仓库中对应文件的对应位置,根据实际情况选择保留或者手动合并哪一部分。合并完成后,再次提交更改以解决冲突。

更多git命令移步极客教程 git 教程

. . .

相关推荐

额外说明

Java的随机示例2——摘录题

上篇写了用Random实现简单抽***奖,这回也用Random实现随机抽题。   思路: 1、将题库中符合条件的题目的题目序号查询出来放到一个list集合中。 2、根据list的size获取0-size之间的随机数,如此便可保证第三步中不会出现下标越界的

额外说明

STM32调试串口输出功能

#include <stdio.h> uint8_t testString[255]; void logs(const char *buf, uint32_t dat) { uint8_t length; snprintf((char *)test

额外说明

00-docker篇: linux系统安装docker操作 (最实用的操作)

目录 1.  docker 简介 ->  简易理解: -> docker是否有自己仓库呢  -> docker 是靠什么运行呢 -> 简单说点docker优点 2. linux安装docker ps: 如果是新服务器 请直接看2. 3 -> 2.1: 查

额外说明

【Unity3D 灵巧小知识点】☀️ | 在编辑器中手动设置 各个脚本的执行顺序

Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。 包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方

额外说明

Web前端部署的几种方法和步骤

随着互联网技术的发展和普及,Web前端开发已成为当今最重要和最具前景的技能之一。与此同时,如何将 Web 前端部署到服务器上已成为一个必不可少的技能。本文将介绍 Web 前端部署的几种方法和步骤。 一、前置准备 在开始 Web 前端部署之前,需要我们先安

额外说明

kafka手动调整分区副本数

前言 在生产环境中,akfka集群下的每台服务器的配置和性能可能不一样,但Kafka集群只会根据配置规则创建对应的分区副本,这样一来可能就会导致个别服务器存储压力较大。 在这种情况下,就需要手动调整分区副本的存储。我们不妨看看下面的这张图就明白了 上图的

额外说明

SpringCloud H版 Config+Bus 实现全局配制刷新

一、Spring cloud Bus 在上篇文章中我们介绍了Spring cloud config的使用,但是应该可以发现一个问题,就是我们在修改完 git 中的配制后,让每个服务生效,需要按个调用刷新接口,如果服务非常多的时候,岂不是非常难受,因此本篇

额外说明

Java Web学习笔记02:在Intellij里创建Web项目

文章目录 一、利用Intellij创建Web项目 1、创建Java项目HelloWorld 2、添加Web服务器配置

额外说明

SVM入门简介(2)

SVM入门(六)线性分类器的求解—问题的转化,直观角度 让我再一次比较完整的重复一下我们要解决的问题:我们有属于两个类别的样本点(并不限定这些点在二维空间中)若干,如图, 圆形的样本点定为正样本(连带着,我们可以把正样本所属的类叫做正类),方形的点定为负

额外说明

【Java8最优解】P1042【NOIP2003普及组】乒乓球

[NOIP2003 普及组] 乒乓球 题目背景 国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。其中 11 1111 分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役。华华就是其中一位,他退役之

ads via 小工具