Git
文章平均质量分 79
千年缘
这个作者很懒,什么都没留下…
展开
-
git 源码解析(五)cat-file
int main(int argc, char **argv){ unsigned char sha1[20]; if (argc != 3 || get_sha1_hex(argv[2], sha1)) usage("cat-file: cat-file [-t | tagname(blob/tree/commit)] <sha1>"); ...原创 2018-12-09 16:46:01 · 1073 阅读 · 0 评论 -
git 源码解析(四)commit-tree
commit-tree命令类似于以后的git commit命令,格式 commit-tree <sha1> [-p <sha1>]int main(int argc, char **argv){ unsigned char tree_sha1[20]; get_sha1_hex(argv[1], tree_sha1); for (i = 2...原创 2018-12-09 16:34:21 · 857 阅读 · 0 评论 -
git 源码解析(三)write_tree
write_tree作用将读取的active_cache的多个文件归并到一个类型为tree的sha1文件中update_catch功能是保存每个源数据文件信息到sha1文件,但各个文件信息是独立的,write_tree的作用是将一次update-catch的多个文件归并到一个类型为tree的sha1文件中int main(int argc, char **argv){ ent...原创 2018-12-09 16:15:52 · 1141 阅读 · 0 评论 -
git 源码解析(一)init-db
第一次用git的时候就非常好奇,不知道这么多命令背后功能是怎么实现的。后来在github上找到源码,回退到第一个初始节点,发现只有几个基本的.c文件,虽然不是完成的功能,但是一些基本的实现原理和逻辑还是挺清楚的。比如对源文件内容的压缩、取hash值、压缩数据存入hash值命名的文件、tree、commit作用等等。现在对这几个.c文件代码做简单梳理,主要用于了解功能实现的逻辑,如有错误...原创 2018-12-09 15:32:08 · 960 阅读 · 1 评论 -
git 源码解析(二)update-catch
update-catch.c 作用类似于以后的 git add f1 f2 ...1. 从.dircache/index文件中读取所有的已存储的文件对应的catch_entry信息到内存列表中2. 对于新文件: I. 将文件内容压缩 II. 对压缩数据取SHA1值作为文件名 III. 将压缩数据写入到文件 IV. 添加新catch_entry到内存列...原创 2018-12-09 15:26:50 · 562 阅读 · 0 评论 -
git 源码解析(六)read-tree
int main(int argc, char **argv){ unsigned char sha1[20]; if (argc != 2) usage("read-tree <key>"); if (get_sha1_hex(argv[1], sha1) < 0) usage("read-tree <key&g...原创 2019-07-17 21:41:54 · 606 阅读 · 0 评论 -
git 源码解析(七)show-diff
int main(int argc, char **argv){ int entries = read_cache(); for (i = 0; i < entries; i++) struct cache_entry *ce = active_cache[i]; stat(ce->name, &st); ch...原创 2019-07-17 21:46:44 · 634 阅读 · 0 评论 -
git 常用命令
1. git config --global user.name wenhchen git config --global user.email "wenhui.chen@nokia-sbell.com" ssh-keygen [-t rsa] cat /c/Users/wenhchen/.ssh/id_rsa.pub2. ...原创 2019-07-17 22:08:43 · 251 阅读 · 0 评论