美文网首页
深入了解Git

深入了解Git

作者: 茗涙 | 来源:发表于2017-04-05 17:12 被阅读63次

git基本命令还可以参考Pro Git;
以下是mac系统终端操作,常用命令可以参考http://www.jianshu.com/p/3291de46f3ff

** 附上方便操作的终端快捷键**

Command + K 清屏
Command + T 新建标签
Command +W 关闭当前标签页
Command + S 保存终端输出
Command + D 垂直分隔当前标签页
Command + Shift + D 水平分隔当前标签页
Command + shift + {或}向左/向右切换标签

git基本操作流程

  1. 创建测试文件夹,名字我命名为JHGit;
mkdir JHGit
目录下的文件

2.切换到JHGit文件夹下

cd JHGit

3.初始化git

git init
初始化后的文件夹目录

4.先查看下.git文件内容

vi .git   //或者  
cd .git
vim编辑器下的内容

也可以使用tree命令!
温馨提示:mac下默认是没有 tree命令!!!
下面几个方法可以试试

1.可以使用find命令模拟出tree命令的效果

find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'

2.手动alias一下,在你的.bash_profile或者.zshrc中添加:(前提你已经安装了oh-my-zash)

alias tree="find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'"

3.可以使用 homebrew 安装 tree 命令行:

brew install tree
Paste_Image.png

5.HEAD

当前所在分支

6.查看下config里面的东西:设置了一些默认的参数之类的

cat .git/config
config

7.description是描述文件

对当前库的描述

8.根据HEAD打印的路径提示找到refs/heads/下

HEAD路径

9.hooks(脚本文件夹),具体了解可以参考GIt Hooks

Paste_Image.png

10.info里面的exclude objects里面的info和pack目前都是空文件

11.和远程仓库建议联系

 git remote add origin https://github.com/Shenjinghao/JHGit

** 注意:连接简历后,可以正常git pull代码,但是如果不做修改,是无法git push提交代码,原因是此时的master的分支不指向任何commit。**

其实这里也可以通过git clone命令跳过和远程仓库连接这一步!

git clone https://github.com/Shenjinghao/JHGit.git

连接后config内容变为下图


连接后的config内容

12.使用touch命令创建个test1文件,工作区会提示,通过命令

git add test1

将test1添加到暂存区,也可以跳过add阶段,既跳过使用暂存区域,直接把已经跟踪的文件暂存起来一起提交。

git commit -am“xx”  ||   git commit -a -m“xx”
创建commit 添加暂存区 提交commit

然后此时的.git变化如下

变化后的.git 变化的.git

使用log命令可以看到最近的log日志

git log
git log .git的新增内容 对应关系

从上面几幅图可以看出,提交的commit消息,最新的commit id和origin的commit id都会被保存

下面引入git的主要工作方式

三个区域
  • 工作区
  • 暂存区
  • git仓库
Three Sections
index 一堆乱码

使用

hexdump -C index 
index内部数据

具体数据代表的意义可以参考git index data format

总结

先打印log

git log

通过命令

git cat-file -p <commit id>
git cat-file
通过以上数据可以发现git所有功能都基于三棵树。
  • 第一棵树:所有提交的commit组成一棵树,分别指向不同版本的提交
  • 第二棵树:每个commit代表一棵树,里面包含所有指向子树的commit(tree),指向上一次的commit id(parent),每个tree里面有包含下一级的tree,blob文件的快照。
  • 第三课树:index暂存区

综上所述,git的实现都是通过比较遮三棵树而进行工作的。

git-firegit-fire

References

  1. Git 官方文档
  2. Git man page
  3. A Little Of Git's Internals
  4. sed编辑二进制文件
  5. git index data format

相关文章

  • 深入了解Git

    git基本命令还可以参考Pro Git;以下是mac系统终端操作,常用命令可以参考http://www.jians...

  • 深入Git组件

    深入Git组件 经过上一次的介绍,已经对git的几个组件比较了解了,接下来我们继续研究一下git的组件。 1.1 ...

  • Git重要命令回顾

    摘要 最近正在重新学习Git版本控制系统,以前对Git的了解不太深入,这次基于对张龙老师的Git实战视频课程的学习...

  • 学习笔记| git深入浅出 Part1_快速操作指南

    Git专题 学习笔记| git深入浅出 Part1_快速操作指南 学习笔记| git深入浅出 Part2_Git...

  • 几张图让你彻底弄懂git工作流(三) ——git深入

    前两篇文章分别说了git简史与git基础以及git分支,那么这篇文章开始简单描述一下git深入 Git深入 在 G...

  • Git练习

    选了三个比较有意思的项目,让你从初级到高级全方位深入了解 Git。 玩游戏,Git入门 这个项目是「Githug」...

  • Git 深入

    一、git基础 1.查看文件状态 添加-s参数将会以简单的格式输出文件名列表 添加-v参数将会显示文件的具体修改 ...

  • 高大上的Git

    前言 虽说用了git 一段时间了,但是却没有深入了解过,今天随着廖雪峰大大的git教程来学习一波,顺便总结一下,方...

  • GitHub超简单小白入门详细教程(1)——了解Git与Gith

    了解Git与Github 和 使用GitHub的目的 一、了解Git与Github 1.1 什么是Git Git是...

  • 2020-07-19

    #git版本管理 ##git工具的作用 了解git工具,首先要了解它的作用,进而了解如何去使用这个工具。 git主...

网友评论

      本文标题:深入了解Git

      本文链接:https://www.haomeiwen.com/subject/ioyvottx.html