查看git配置:
git config --list
设置git的user name和email:
git config --global user.name "xxx"
git config --global user.email "xxx@gmail.com"
查看某个文件的修改历史
git log --pretty=oneline filename # 显示此文件的修改历史
git show 356f6def9d3fb7f3b9032ff5aa4b9110d4cca87e # 查看更改
git 取添加文件
在git的一般使用中,如果发现错误的将不想提交的文件add进入index之后,想回退取消,则可以使用命令:
git reset HEAD <file>…
同时git add完毕之后,git也会做相应的提示。
git删除文件
删除文件跟踪并且删除文件系统中的文件file1
git rm file1
删除文件跟踪但不删除文件系统中的文件file1
git rm --cached file1
git rm 帮助如下:
usage: git rm [options] [--] <file>...
-n, --dry-run dry run
-q, --quiet do not list removed files
--cached only remove from the index
-f, --force override the up-to-date check
-r allow recursive removal
--ignore-unmatch exit with a zero status even if nothing matched
版本回退
版本回退用于线上系统出现问题后恢复旧版本的操作。
回退到的版本
git reset --hard 248cba8e77231601d1189e3576dc096c8986ae5
回退的是所有文件,如果后悔回退可以git pull就可以了。
历史版本对比
查看日志git log
查看某一历史版本的提交内容git show 4ebd4bbc3ed321d01484a4ed206f18ce2ebde5ca,这里能看到版本的详细修改代码。
对比不同版本git diff c0f28a2ec490236caa13dec0e8ea826583b49b7a 2e476412c34a63b213b735e5a6d90cd05b014c33
创建分支且切换分支
创建新分支:git branch branchName
切换到新分支:git checkout branchName
然后,上面两个命令也可以合成为一个命令:
git checkout -b branchName
#git branch的时候注意当前的所在的分支
分支帮助
git branch -help
分支重命名
重命名任何分支:
git branch -m <oldname> <newname>
重命名当前分支:
git branch -m <newname> #其实-m参数就是 "move" (or mv)
更多关于: git branch 的信息,查命令:
git --help branch
查看当前git 分支详情
git branch -v
还原当前分支为origin/master
git reset --hard origin/master
查看提交日志小技巧
$ git log (--pretty=)oneline
常见的format选项:
选项 说明
%H 提交对象(commit)的完整哈希字串
%h 提交对象的简短哈希字串
%T 树对象(tree)的完整哈希字串
%t 树对象的简短哈希字串
%P 父对象(parent)的完整哈希字串
%p 父对象的简短哈希字串
%an 作者(author)的名字
%ae 作者的电子邮件地址
%ad 作者修订日期(可以用 -date= 选项定制格式)
%ar 作者修订日期,按多久以前的方式显示
%cn 提交者(committer)的名字
%ce 提交者的电子邮件地址
%cd 提交日期
%cr 提交日期,按多久以前的方式显示
%s 提交说明
注:作者是指最后一次修改文件的人;而提交者是指提交该文件的人。
$ git log --pretty=format:"%an %ae %ad %cn %ce %cd %cr %s" --graph
–mergs 查看所有合并过的提交历史记录
–no-merges 查看所有未被合并过的提交信息
–author=someonet 查询指定作者的提交记录
$ git log --author=gbyukg
-since,-affter 仅显示指定时间之后的提交(不包含当前日期)
-until,-before 仅显示指定时间之前的提交(包含当前日期)
$ git log --before={3,weeks,ago} --after={2010-04-18}
–grep 通过提交说明信息过滤提交日志
$ git log --grep=hotfix 该命令会列出所有包含hotfix字样的提交信息说明的提交记录
注意:如果想同时使用-grep和author,必须在附加一个-all-match参数。
-S 通过查询文件的变更内容来检索出指定提交日志 注:-S后没有"=",与查询内容之间也没有空格符
$ git log --Snew
-p 查看提交时的补丁信息
$ git log -p --no-merges -2
–stat 列出文件的修改行数
-sortstat 只显示-stat中最后行数修改添加移除的统计
–graph 以简单的图形方式列出提交记录
–abbrev-commit 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。
–relative-date 使用较短的相对时间显示(比如,“2 weeks ago”)。
–name-only 仅在提交信息后显示已修改的文件清单。
–name-status 显示新增、修改、删除的文件清单。
GIT Blame
用来查看文件的每个部分修改详情
$git blame index.php
git log的经典示例
git log --author=xx --after=2015-11-01 --before=2015-12-01 --no-merges --shortstat --pretty=format:" %b $ %an $ %ci $ %s " > 1.txt
git log --author=xx --after=2015-11-01 --before=2015-12-01 --no-merges --shortstat --pretty=format:" %b $ %ae $ %ci $ %s " > 1.txt