原创:http://blog.sina.com.cn/u/2312748742
1)git config --global user.name /user.email +用户名/email
2)git init 初始化git,新建仓库。
3)git log 查看日记。git log -p,详细日记。
4)git status 查看状态
5)git add . 要提交的文件。 .为这个文件夹
6)git commit 真正把要提交的文件保存到仓库中。
7)git branch 创建分支
8)git checkout experiment 切换分支 。接下去在这个分支工作。。。。。。
9)提交分支工作,并且切回到主干。
10)git merge experment 合并分支到主干。
11)git branch -d experiment 删除分支。
12)git ls-files --deleted 查看删除的文件
13)git checkout test/ 恢复文件
14)git diff 比较差异
15)git revert恢复到之前的索引。
16)当git add .后又不想放到缓存了。想撤出怎么办:
使用git reset HEAD<那个文件名>
17)当改了一些文件后想返回怎么办,输入
18)当git commit -m "信息" ,当不要了这个怎么办,使用 git rest --soft HEAD^此命令会把git log里的记录返回到之前的,也可以用git commit -a -c ORIG_HEAD 重新再定义信息。
git原理分析:
.git仓库里其实有branches/config/description/HEAD/hooks/info/objects/refs
1)git采用有改变就保存起来,没有采用什么修改算法等。
2)git可以用--globle保存全局的个人消息。也可以用 .git/config 里的局部消息
3)有三个地方,一、git init后有一个.git这个就是Repository放保存的仓库。
4)二、working directory 工作区
5)三、staging area/index缓存区。
6)上面三个顺序,二 -> 三 ->一
7)从仓库里取出来恢复文件 用 git checkout -f HEAD , 只要.git这个仓库不丢失,其它工作区的文件无所谓。
8)git其实有三个对象,这个是git的核心。 first :blob,这个是叶子,真正的文件。second :tree,树,其实这个就是目录,它指向了blob,third:commit,这个是历史记录的。没commit一次,就有一个,它指向tree.
9)git hash-object <file>,这个是HSA1值,哈希值,它代表file。
10)find .git/objects/ -type f 列出普通文件
11)git show <哈希值> 。可以显示文件内容。
12)git cat-file -t <哈希值>。显示文件时tree还是 blob 或者 commit.
13)tree 对象。有 blob/tree
14)git保存的原理它内容和文件名是分离的,如果内存相同而文件名不一样,则它只保存一份内容。文件名称由tree保存。
15)commint对象: 里面有tree/parent/auther/commiter
16)blob对象。正真的文件。压缩成哈希值作文件名称。
17)tag对象也可以称另一个对象。它是标签。用在 commit -m “标签” 。
18)References 引用、有 HEAD,branches .romote brach
19) 打入标签; git tag V1.00.00.01
20)查看标签: ls .git/refs/tags/
21)提取之前的版本。
22)用 git checkout v1.0
23)合并冲突后应手动去更改,然后再主分支上commit一次即可。
24)合并后要删除分支:git branch -D testing
25)有些不想放到仓库里应该用 .gitignore 文件,然后把不想放仓库的文件名写到.gitignore里面
26)git diff --staged 或者git diff 比较workspace VS staged
27) git diff --cached: 比较 staged VS local reperety
28)删除git rm <文件名>
29) git reset --head <commit 名>恢复到哪个版本 缓冲区,工作区,heard都没了。还原到原来的版本
30)git reset 表示撤销缓存区。 (默认为--mixed),更改引用的指向及重置暂存区,但是不改变工作区
31) git reset --soft <commit名>