Git数据流图

本文详细介绍了Git的常见操作,包括数据从远程到本地、本地到远程的流向,以及在遇到冲突时如何使用gitfetch、gitmerge和gitdiff进行处理。在冲突解决中,重点解析了gitdiff的输出格式,并提供了冲突解决步骤。最后,深入探讨了Git冲突产生的内在原理,从仓库区到工作区的代码流动过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

根据数据流向,已图片的形式表达Git常见操作

  • 使用红色箭头代表:数据从远程到本地的流向
  • 使用蓝色箭头代表:数据从本地到远程的流向
  • 使用绿色箭头代表:误操作后,回退
    请添加图片描述- 附:git diff的操作场景
    请添加图片描述

实例

背景:当本地修改、添加、提交,并推送时,Git提示:远程仓库与本地冲突。

冲突分析

  • 使用git fetch命令,下载远程仓库最新代码
  • 使用git merge命令,合并代码。此时会出现冲突提示
  • 使用git diff命令,得到冲突详情
diff --git a/your_path/your_file.txt b/your_path/your_file.txt
index 163812b..a4f7cc5 100624
--- a/your_path/your_file.txt
+++ b/your_path/your_file.txt
@@ -3,11 +3,17 @@
第一行内容
第二行内容
+<<<<<<< HEAD
第二行内容 加上本地修改的内容
+=======
第二行内容 加上远程修改的内容
+>>>>>>> refs/remotes/origin/master
第n行内容

每段含义

  • diff --git a/your_path/your_file.txt b/your_path/your_file.txt 代表冲突的标题
  • index 163812b..a4f7cc5 100624 代表Git的内部编号
  • --- a/your_path/your_file.txt 代表远程文件的路径
  • +++ b/your_path/your_file.txt 代表本地文件的路径
  • @@ -3,11 +3,17 @@ 代表Git对文件增删改的统计
  • +<<<<<<< HEAD 代表本地修改内容起始位置
  • +======= 代表远程修改内容的起始位置
  • +>>>>>>> refs/remotes/origin/master 代表冲突内容结束位置

解决冲突

  • 使用任意编辑器,打开冲突文件your_path/your_file.txt
  • 删除三行内容,再将改文件修改成自己想要的最终模样
+<<<<<<< HEAD
+=======
+>>>>>>> refs/remotes/origin/master
  • 再次添加、提交、推送即可

附:深层原理

  • 第一次推送失败后,本地代码到了仓库区
  • 使用git fetch后,远程代码到了仓库区
  • 使用git merge后,远程代码、本地代码带着冲突,都到了工作区
  • 修改工作区文件后,一切从头开始走
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值