首页 > 其他分享 >Git三大分区学习

Git三大分区学习

时间:2022-08-20 18:13:08浏览次数:90  
标签:git 分区 暂存区 源文件 Git 版本 diff txt 三大

转自:https://juejin.cn/post/6844903654311510030

1.工作区、暂存区、版本库

  • 工作区(Working Directory) 是直接编辑的地方,直接操作。
  • 暂存区(Stage 或 Index) 数据暂时存放的区域。
  • 版本库(commit History) 存放已经提交的数据,push 的时候,就是把这个区的数据 push 到远程git仓库了。

 git add 命令会将工作区的修改添加到暂存区中,git commit执行时,会提交暂存区的内容到版本库中。

2.查看对比

git diff                工作区 vs 暂存区
git diff head            工作区 vs 版本库
git diff –-cached        暂存区 vs 版本库

 一开始,三个分区是一致的,在工作区修改文件后,另外两个保持一致;在add后,工作区和暂存区一致;commit后,三区一致。

通过git diff命令查看某一文件的修改内容:

myproj % git diff a.txt
diff --git a/a.txt b/a.txt index f658172..fc7bd6a 100644 --- a/a.txt +++ b/a.txt @@ -1,3 +1,3 @@ testA testB -添加注释修改文件 \ No newline at end of file +0820 bg修改一下

输出内容详解:https://developer.aliyun.com/article/658560

  • diff --git a/a.txt b/a.txt :a/a.txt代表源文件,也就是修改前的文件, b/a.txt代表比目标文件,也就是修改后的文件;
  • index f658172..fc7bd6a 100644: 表是文件哈希值。
  • 第三四行:---代表源文件,+++代表目标文件;
  • 第五行:差异小结,@@ -1,3 +1,3 @@ ,分为两个部分,第一个是-1,3,-表示源文件,1,2表示从第一行开始的第3行,后面的+1,3,则表示目标文件的第一行开始的第三行内容。差异小结可能会有多个。
  • 剩下的行都是具体的差异信息,其中以空格开头的行代表源文件与目标文件没有差异,以-开头 的行代表在源文件的基础上删除,以+开头代表在源文件基础上添加;

git add .后,

myproj % git add .
myproj % git diff     //无内容输出
myproj % git diff head    //查看工作区和版本库的区别
diff --git a/a.txt b/a.txt
index f658172..fc7bd6a 100644
--- a/a.txt
+++ b/a.txt
@@ -1,3 +1,3 @@
 testA
 testB
-添加注释修改文件
\ No newline at end of file
+0820 bg修改一下
myproj % git diff –-cached //查看暂存区和版本库的区别,有问题。 fatal: 有歧义的参数 '–-cached':未知的版本或路径不存在于工作区中。 使用 '--' 来分隔版本和路径,例如: 'git <命令> [<版本>...] -- [<文件>...]'

commit之后第三个命令仍是有问题,不知道为什么。

 

标签:git,分区,暂存区,源文件,Git,版本,diff,txt,三大
From: https://www.cnblogs.com/BlueBlueSea/p/16608304.html

相关文章

  • 26. Redis---分区技术
    1.前言Redis分区技术(又称RedisPartition)指的是将Redis中的数据进行拆分,然后把拆分后的数据分散到多个不同的Redis实例(即服务器)中,每个实例仅存储数据集的某一部分(......
  • github_findpath_v1.0-Github开源项目目录爆破程序
    Github开源项目目录爆破程序​ 写了个小工具,欢迎师傅们提建议​ 某一天回我的母校溜达了一圈,然后用GoogleHack找到了一个后台,用Wappalyzer没识别到CMS,但是看着这东西......
  • worktree的路径的文件夹自己重命名后发现没有git
    whyworktree?假如你当前有个正在开发的feature,而现在反馈有个hoxfix需要紧急处理,但是我当前的feature也没有写完,并且也不想提交,那么你可以:gitstatsh:将当前工作区的......
  • Git在使用过程中遇到的一些问题
    git默认对文件中的大小写不敏感。方案1:通过配置git来达到识别文件大小写的问题。命令如下:gitconfigcore.ignorcecasefalse缺点:每个仓库都需要修改。方案2:1.先删......
  • Git常用指令
    团队中高频使用的指令注册内网用户项目管理员拉进项目获取权限后,gitclone'url'项目到本地创建自己的项目分支gitbranch'分支名'开始编码gitclone默认下载所......
  • 【gp】取schema下表及其注释,去除分区表
    【sql】selecta.tablenameastname      b.remark   asremarkfrom(   selecttable_nametablename   frominformation_schem.tab......
  • 解决无法访问GitHub
    一、获取IP地址可以直接通过网站查询域名github.com的IP地址,无论哪种方法一定得是通过自己本机查到的IP,网上别人查到的IP你不一定有用。https://www.ipaddress.co......
  • TortoiseGit 图标不显示
    TortoiseGit图标不显示谁在和我的TortoiseGit争夺图片,我就删除谁计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayId......
  • gitignore的相关语法
    空行会被忽略匹配是区分大小写的,如:/abc和/Abc含义不同#开头是注释,会被忽略*表示0-n个字符**两个星含义是子目录子子目录等多层匹配?匹配1个字符(......
  • GIt 冲突解决
    1.gitmerge冲突现象andrew@b-d51qlvdl-2310test1%gitmergetestAuto-mergingREADME.en.mdCONFLICT(content):MergeconflictinREADME.en.mdAutomaticmerg......