Posts by Topic: git

Mega Quick Start Guide on Ubuntu 22.04
Mega Quick Start Guide on Ubuntu 22.04

Li Guangqiao - 28/11/2023

Quick Started for developing and testing on Ubuntu(22.04) Install Rust on your Ubuntu machine. curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh // Configure the Environment Variable source $HOME/.cargo/env // check your version rustc --version Clone mega repository and build it. git clone https://github.com/web3infra-foundation/mega.git cd mega cargo build Install PostgreSQL and init database. install PostgreSQL create database,then find the dump file in the...

Git对象及其存储结构
Git对象及其存储结构

Li Guangqiao - 03/11/2023

Git对象及其存储结构 Git对象 Git是一个内容寻址文件系统。其核心思想就是键值对数据库(key-value data store),其核心行为包括: 通过向 Git 仓库中插入任意类型的内容,它会返回一个唯一的键(key)。 通过该键可以在任意时刻再次取回该内容。 实验出真知 可以通过底层命令 git hash-object 来演示上述效果——该命令可将任意数据保存于 .git/objects 目录(即 对象数据库),并返回指向该数据对象的唯一的键。 初始化一个Git仓库 $ git init git_lab 检查一下git对象目录(.git/objects)生成了哪些文件夹,通过find命令查看所有文件夹(包含子文件夹) $ find .git/objects/ .git/objects/ .git/objects/info .git/objects/pack 检查一下.git/objects目录下生成了哪些文件,同样通过find+文件路径+类型参数-type f查看所有文件 $ find .git/objects/ -type f //无输出表示没有文件 接下来要开始创建并保存一个文件了,这里简单创建一个文本文件 echo "git testing" > git_test.txt 保存到git对象目录(.git/objects)。这里使用了git hash-object命令,根据文件git_test.txt的内容生成一串hash值 git hash-object -w git_test.txt 34e75148c0aeb4efb212f817606d386b15190525 注意:hash值仅与文件内容有关,与名称无关。 $ echo "git testing" | git hash-object -w --stdin 34e75148c0aeb4efb212f817606d386b15190525 再次查看git对象目录(.git/objects)下的所有文件 $ find .git/objects/ -type f .git/objects/34/e75148c0aeb4efb212f817606d386b15190525 其中hash值长度40,前两个字符用于子目录命名,后38个字符用于文件命名。hash算法参考SHA-1 文件git_test.txt内容已经存储到对象数据库中,如果需要从git中取回数据,则需要通过cat-file命令实现(个人理解cat实际就是catch的缩写),其中指定 -p 选项可指示该命令自动判断内容的类型,并为我们显示大致的内容 $ git cat-file -p 34e75148c0aeb4efb212f817606d386b15190525 git testing 版本变更实验:更新文件git_test.txt的内容并重新保存 $ echo "changing"...

Mega学习
Mega学习

Li Guangqiao - 30/08/2023

Mega(去中心化Git服务) Mega是一个去中心化、分布式的开源git项目。它的目标是提供一个更加安全和隐私保护的git服务,同时还可以提供高质量的代码托管和版本控制功能。Mega是完全开源的,任何人都可以自由地使用它,也可以参与到它的开发和维护中来。 ...