欢迎来到天天文库
浏览记录
ID:20427085
大小:1.74 MB
页数:36页
时间:2018-10-09
《git pro深入浅出(2)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、GitPro深入浅出(二)六、Git工具1.选择修订版本Git允许通过几种方法来指明特定的或者一定范围内的提交。gitshowgitshow<简短的SHA-1>SHA-1的前几个字符就可以获得对应的那次提交,当然你提供的SHA-1字符数量不得少于4个,并且没有歧义——也就是说,当前仓库中只有一个对象以这段SHA-1开头。#--abbrev-commit显示简短且唯一的值$gitlog--abbrev-commit--pretty=oneline(1)引用日志 Git会在后台保存一个引用日志(reflog),引用日志记录了最近几个月你的HEAD和分支引用所指
2、向的历史。$gitreflog每当HEAD所指向的位置发生了变化,Git就会将这个信息存储到引用日志这个历史记录里。#显示制定提交记录$gitshowHEAD@{21}#显示昨天提交记录$gitshowmaster@{yesterday}(2)祖先引用#查看上一个提交$gitshowHEAD^#查看d921970的祖父提交$gitshowd921970~2(3)提交区间#在develop分支中而不在master分支中的提交$gitlogmaster..develop#在master分支中而不在develop分支中的提交$gitlogdevelop..master#在你当前分支
3、中而不在远程origin中的提交$gitlogorigin/master..HEAD#查看所有被refA或refB包含的但是不被refC包含的提交$gitlogrefArefB^refC$gitlogrefArefB--notrefC#选择出被两个引用中的一个包含但又不被两者同时包含的提交$gitlog--left-rightmaster...develop2.交互式暂存当你修改一组文件后,希望这些改动能放到若干提交而不是混杂在一起成为一个提交时,交互式暂存变得非常有用。$gitadd-i/--interactive3.储藏与清理当你在项目的一部分上已经工作一段时间后,所有东
4、西都进入了混乱的状态,而这时你想要切换到另一个分支做一点别的事情。问题是,你不想仅仅因为过会儿回到这一点而为做了一半的工作创建一次提交。针对这个问题的答案是gitstash命令。其会将修改的文件保存到一个栈上,而你可以在任何时候重新应用这些改动。$gitstash$gitstashsave#查看储藏的东西$gitstashlist#重新应用储藏$gitstashapplystash@{2}注意:·可以在一个分支上保存一个储藏,切换到另一个分支,然后尝试重新应用这些修改·当应用储藏时工作目录中也可以有修改与未提交的文件,如果有任何东西不能干净地应用,Git会产生合并冲突。#从栈
5、上删除储藏$gitstashdropstash@{2}#应用后立即删除$gitstashpop(1)创造性的储藏 不储藏任何你通过gitadd命令已暂存的东西$gitstash--keep-indexgitstash只会储藏已经在索引中的文件。 如果指定 --include-untracked 或 -u 标记,Git也会储藏任何创建的未跟踪文件。$gitstash-u(2)从储藏创建一个分支$gitstashbranch其创建一个新分支,检出储藏工作时所在的提交,重新在那应用工作,然后在应用成功后扔掉储藏。是在新分支轻松恢复储藏工作并继续
6、工作的一个很不错的途径。 (3)清理工作目录 移除工作目录中所有未追踪的文件以及空的子目录(-f意味着“强制”或“确定移除”)。$gitclean-f-d-n选项来运行命令,这意味着“做一次演习然后告诉你将要移除什么”。$gitclean-d-n更安全的方式,将所有东西放到储藏栈中,同样达到了清理工作目录的目的。gitstash--all4.签署工作每个人生成私钥,用生成的密钥来签署标签与提交。5.搜索(1)浏览代码 grep命令,可以很方便地从提交历史或者工作目录中查找一个字符串或者正则表达式。#搜索所有文件中包含“ligang”的文件,并显示行号$gitgrep-nlig
7、ang#输出概要信息$gitgrep--countligang#想看匹配的行是属于哪一个方法或者函数$gitgrep-pjs-pt-settings-user$gitgrep--break--heading-pjs-pt-settings-user·–break:多个文件之间空行隔开·–heading:文件名独占一行(2)日志搜索#想知道是什么时候存在或者引入的静态常量"ZLIB_BUF_MAX"$gitlog-SZLIB_BUF_MAX--oneline$gitlog-Sligang--oneline
此文档下载收益归作者所有