git命令

发布时间:2016-12-8 10:20:16 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"git命令",主要涉及到git命令方面的内容,对于git命令感兴趣的同学可以参考一下。

原创: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 真正把要提交的文件保存到仓库中。   前面两个命令可以用 git commit -a -m"信息" 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<那个文件名>  。可以用giestatus查看。 17)当改了一些文件后想返回怎么办,输入  git status可以看到有改过的文件会出现Changed but not updated ,此时如果你不想改了,可以gitcheckout --<file> ,返回。此命令是把原来的版本覆盖过来。   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)上面三个顺序,二 -> 三 ->一  ,其中 二到三 用git add 三到一 用gitcommint  。如果也可以用 git commint -a 来让git 自己执行 二到三 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 。 gitls-tree <哈希值> 14)git保存的原理它内容和文件名是分离的,如果内存相同而文件名不一样,则它只保存一份内容。文件名称由tree保存。 15)commint对象: 里面有tree/parent/auther/commiter 用git show -s -pretty =raw <哈希值> 16)blob对象。正真的文件。压缩成哈希值作文件名称。 17)tag对象也可以称另一个对象。它是标签。用在 commit -m “标签” 。 18)References 引用、有 HEAD,branches .romote brach 19) 打入标签; git tag V1.00.00.01 或者创建标签对象 。 gittag -a <标签名> -m "描述信息" 20)查看标签: ls .git/refs/tags/ 21)提取之前的版本。   cat.git/HEAD           看他的头指向哪里   cat.git/resf/heads/master      cat .git/refs/tags/   提取对应的版本并压缩:   git archive --format=tar--prefix=/<gitspace存放文件夹> V1.0(标签) |gzip   >/workspace/kylin/v1.0.tar.gz 22)用 git checkout v1.0 ./   其实同上,它是先去找.git/refs/tags/v1.0 找到这个记录的希哈值。通过这个希哈值找了tag标签,标签就指向了commit ,commit指向了tree,tree指向了blob,因此就都找到了。 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都没了。还原到原来的版本    ①替换引用的指向。引用指向新的提交ID。    ②替换暂存区。替换后,暂存区的内容和引用指向的目录树一致。    ③替换工作区。替换后,工作区的内容变得和暂存区一致,也和HEAD所指向的目录树内容相同。 30)git reset 表示撤销缓存区。 (默认为--mixed),更改引用的指向及重置暂存区,但是不改变工作区 31) git reset --soft <commit名>  只更改引用的指向,不改变暂存区和工作区. 32) git 不同节点的某一个文件的比较: git diff   26665422dd22  s225df5585x222   --   aa.c

上一篇:create_proc_read_entry中函数的说名
下一篇:Makefile编写

相关文章

关键词: git命令

相关评论