一直对 git 的实现比较感兴趣,尤其是分支切换及版本回退部分,git Pro 这本书也看过对应的原理,但也是看过就忘,印象不深,git 的源码也太多无从下手,索性自己根据原理从零开始模仿 git 的命令做了个版本控制,因为自己对 js 比较熟,涉及到文件操作自然也选择了 node,目前实现了基本的功能( init,add,commit,branch ),操作实体对象也根据 git 原理实现了 blob、tree 和 commit,一套写下来对 git 的实现有更深入理解,这里也分享给有需要的朋友。
目前已实现的功能:
1
suley 2018-08-17 11:37:16 +08:00
期待 go,java,php 也来造轮子
|
2
wanguorui123 2018-08-17 16:53:58 +08:00
@suley https://gogs.io/ 了解下
|
3
msg7086 2018-08-18 04:35:54 +08:00
@wanguorui123 了解了,是用 C 写的。能不能找个别的语言实现的?
|
4
DiamondYuan 2018-08-20 23:00:59 +08:00
@msg7086 喵喵喵。不是用 go 写的吗。
|
5
msg7086 2018-08-21 00:18:39 +08:00
@DiamondYuan 不是。Gogs 用的是 Linus 写的 C 版 Git。
|