个人git链接和git学习心得总结
个人git链接: https://github.com/lvcaixia
1、Git中的文件不是增量保存的 而是每个都存一份(原因:硬盘已经不是制约程序的因素)
2、Git采用的算法是SHA1
3、MD5跟SHA1已经被王小云在04、05年破解
4、作者:linux之父 Linus Torvalds
5、安装Git Bash (命令行中用到的是linux中的命令)
6、ls -la 显示隐藏文件 (windows or linux 目录前面加个.默认是隐藏文件)
7、使用git init 初始化(该文件夹下面会生成一个.Git的隐藏目录)
8、配置git
-
2
git config --global user.name 'liyang'
git config --global user.email 'liyangfd@163.com'
cd (到默认目录)
pwd (显示当前目录)
ls -la 查看目录列表 注意.gitconfig
cat .gitconfig 这个会覆盖全局的
切换回aaa目录
cat .git/config
git config user.name 'liyang'
git config user.email 'liyangfd@163.com'
9、Git:Three Area
Repository 仓库 默认.git
Working directory 工作目录
Staging area/Index
Staging area 在.git 目录下的index中
演示:
1、在d:/temp/gitdemo中创建文件bbb
mkdir bbb
vi main.c
git add main.c
git commit -m "this is one commit"
rm -f main.c
git checkout -f HEAD 从.git中拿回来 备份时只要吧.git 压缩备份走就行了
ls 查看 main.c又回来了
The Git Object(就像是一个树blob是节点,tree是目录)
blob: is used to store file data--it is generally a file
tree: is basically like a directory -- it references a bunch of other threes and/or blobs
commit: points to a single tree,markng it as what the project looked like at a certain point in time
Blob Ojbect
The Blob object Generally stores the contents of a file
演示:
cd .. (即:gitdemo目录)
mkdir ccc
cd ccc
cp ../bbb/main.c . (拷贝文件到当前目录)
cat main.c
git hash-object main.c
git init
git add .
find .git/objects/ -type f 列出这个目录下面所有普通文件
git show 59c0 显示文件内容 59c0是刚才哈希的值 40个字节取前几个就行 了
git cat-file -t 文件名 显示文件类型(commit ,tree,blob)
Tree Object
git ls-tree 文件名
git show -s --pretty=raw 文件名 (commit的文件名)