多语言展示
当前在线:1780今日阅读:167今日分享:27

Git 学习笔记

学习小布老师视频Git的一些经验
工具/原料

小布老师Git视频

方法/步骤
1

1、Git中的文件不是增量保存的 而是每个都存一份(原因:硬盘已经不是制约程序的因素)2、Git采用的算法是SHA13、MD5跟SHA1已经被王小云在04、05年破解4、作者:linux之父 Linus Torvalds5、安装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  查看目录列表 注意.gitconfigcat .gitconfig  这个会覆盖全局的切换回aaa目录 cat .git/configgit config user.name 'liyang'git config user.email 'liyangfd@163.com'9、Git:Three AreaRepository 仓库   默认.gitWorking directory 工作目录 Staging area/Index

3

Staging area 在.git 目录下的index中演示:1、在d:/temp/gitdemo中创建文件bbbmkdir bbbvi main.cgit add main.cgit commit -m 'this is one commit'rm -f main.cgit checkout -f HEAD 从.git中拿回来 备份时只要吧.git 压缩备份走就行了ls 查看 main.c又回来了The Git Object(就像是一个树blob是节点,tree是目录)blob: is used to store file data--it is generally a filetree:   is basically like a directory -- it references a bunch of other threes and/or blobscommit: points to a single tree,markng it as what the project looked like at a certain point in timeBlob OjbectThe Blob object Generally stores the contents of a file演示:cd .. (即:gitdemo目录)mkdir ccccd ccccp ../bbb/main.c . (拷贝文件到当前目录)cat main.cgit hash-object main.cgit initgit add .find .git/objects/ -type f 列出这个目录下面所有普通文件git show 59c0 显示文件内容 59c0是刚才哈希的值 40个字节取前几个就行 了git cat-file -t 文件名 显示文件类型(commit ,tree,blob)Tree Objectgit ls-tree 文件名git show -s --pretty=raw 文件名 (commit的文件名)

4

演示mkdir dddcd dddmkdir libcd libmkdir inccd incvi trick.ccd ..vi mylib.ccd ..vi readmegit initgit add . (把当前目录下所有东西添加进去)git commit -m 'this is first my commit'find .git/objects/ -type fgit cat-file -t 文件名称Object&References1、Branches2、HEAD3、Remote

5

全面演示:mkdir fffcd fffmkdir libvi init.rbcd libmkdir basevi my_plugin.rbcd basevi base_include.rbcd 到fffgit initgit add .git commit -m '1 commit'find .git/objects/ -type f  find .git/objects/ -type f  |wc -l 此时个数为7cd /lib/basevi base_include.rb (添加一句话)cd ..cd ..git commit -a -m 'second commit'find .git/objects/ -type ffind .git/objects/ -type f  |wc -l 此时个数为12 底层发生变化 它上层全部变化--下面开始添加Tagls -l .git/refs/tags  git tag v1.0 (轻量级Tag)ls -l .git/refs/tags  cat .git/refs/tags/v1.0git cat-file -t 79d7find .git/objects/ -type f  |wc -l 此时个数为12 轻量级Tag并不占文件 所以还是12git tag -a milestone1.0 -m 'This is the first stable version'find .git/objects/ -type f  |wc -l 此时个数为13  此时Tag占用一个文件ls -l .git/refs/tags  cat .git/refs/tags/milestone1.0git cat-file -t (milestone1.0内容的名字)     返回tagvi init.rbgit commit -a -m 'this is third commit'find .git/objects/ -type f  |wc -l 此时个数为16cat .git/headcat .git/refs/heads/mastercat .git/refs/tags/v1.0git cat-file -t 文件git archeive --format=tar --prefix=fff/ v1.0 | gzip>fff1.0.tar.gz   提取文件压缩(根据tag提取)tar zxvf fff1.0.tar.gz  解压文件

6

六、Git核心功能 分支合并git branch 查看分支git branch testing 创建分支git checkout testing  切换分支命令介绍:git --version 查看版本git init  初始化命令(下面将配置写在家目录的.gitconfig文件中)git config --global user.name 'liyang'git config --global user.email 'liyangfd@163.com'(下面将配置写在家目录的.git/config文件中)git config user.name 'liyang'git config user.email 'liyangfd@163.com'git add (将文件从working directory 放到 staging area)git commit(将文件从staging area 放到repository中)git commit -m 'Init Project' git checkout -f HEADgit hash-object main.c 计算main.c的哈希值git show -s --pretty=raw 文件名 (commit的文件名)git commit -a -m 'second commit'     (-a 凡是这个目录下修改的文件自动添加进去)git archeive --format=tar --prefix=fff/ v1.0 | gzip>fff1.0.tar.gz (提取文件并压缩)tar zxvf fff1.0.tar.gz   解压文件git branch 查看分支git branch 查看分支git branch 分支名称git checkout 分支名称git branch -D testing 删除分支合并分支切换到主的分支   testing是分支名字git merge testing

推荐信息