git使用总结

github
ProGit

常用术语

  • VCS: Version Control System 版本控制系统
  • DVCS: Distributed Version Control System 分布式版本控制系统
  • CVCS: Centralized Version Control System 中心式版本控制系统

源码安装

安装依赖

1
2
3
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc xmlto docbook2x

atp-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev asciidoc xmlto docbook2x

编码编译安装

1
2
3
4
5
6
7
wget https://github.com/git/git/archive/v2.22.0.tar.gz
tar xvf v2.22.0.tar.gz
cd git-2.22.0
make configure
./configure --prefix=/usr
make all doc info
make install install-doc install-html install-info

常见问题

多平台的换行问题

git调试方法

在执行git命令前可以通过设置环境变量GIT_TRACE=1GIT_CURL_VERBOSE=1来增加命令执行的调试信息

Git内部原理

Git命令

高层命令

git diff

git commit

git log

底层命令

git最核心部分是一个key-value的数据库。

hash-object命令

cat-object命令

update-index命令

ls-files命令