好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

git命令大全

git tag -d tag2.0 // 删除名为tag2.0的标签

git show tag1.0  // 查看名为tag1.0相关的信息

git ls-remote --tags  // 查看所有远端的标签

查看差异

git diff README.md  // 查看当前目录下的README.md在工作区和暂存区之间的差异

git diff --cached README.md  // 查看当前目录下的README.md在暂存区和本地仓库最后一次提交之间的差异

git diff --cached 372aa8e425b57ca30e2974b8e7737133caaa0b7f README.md  // 查看当前目录下的README.md在暂存区和本地仓库的372aa8e425b57ca30e2974b8e7737133caaa0b7f提交之间的差异

git diff HEAD README.md  // 查看当前目录下的README.md在工作区和本地仓库HEAD指针处提交之间的差异

git diff 372aa8e425b57ca30e2974b8e7737133caaa0b7f README.md  // 查看当前目录下的README.md在工作区和本地仓库的372aa8e425b57ca30e2974b8e7737133caaa0b7f提交之间的差异

git diff 372aa8e425b57ca30e2974b8e7737133caaa0b7f HEAD README.md  // 查看当前目录下的README.md在本地仓库的372aa8e425b57ca30e2974b8e7737133caaa0b7f提交和最后一次提交之间的差异

git diff 372aa8e425b57ca30e2974b8e7737133caaa0b7f HEAD // 查看本地仓库的372aa8e425b57ca30e2974b8e7737133caaa0b7f提交和最后一次提交之间的差异

git diff 372aa8e b5cad94 README.md  // 查看当前目录下的README.md在本地仓库的372aa8e提交和b5cad94提交之间的差异

注:可以将git diff换成git difftool来使用外部diff工具(可以在gitconfig文件配置beyond compare作为默认的difftool和mergetool)来查看差异

日志与文件状态

git reflog // 查看操作记录  注:每条操作记录使用HEAD@{n}来标识

git show HEAD@{5}  // 查看索引为5的操作记录的详细信息

git status // 查看当前所处的分支暂存区和工作区的文件(会显示当前所处分支)
              注1:处于暂存区的文件状态::staged(已暂存);处于工作区的文件状态::untrack(未跟踪)、modified(已修改)
              注2:工作区中的空目录不会被git追踪

git status -s --ignored // 以简洁模式查看暂存区和工作区的文件(全部显示,不执行文件过滤)

git status -uno // 查看暂存区和工作区的非untrack(未跟踪)状态文件

git status -uall // 查看暂存区和工作区的状态文件(递归子目录显示出里面的文件)

git log  // 查看本地版本库提交记录(会显示当前所处分支,HEAD指针指向哪个分支的哪条提交)

git log --stat // 查看本地版本库提交记录(会显示当前所处分支,HEAD指针指向哪个分支的哪条提交和每次提交的文件变更简略统计信息)

git log -- README.md  // 查看README.md文件的本地版本库提交记录

git log --graph -- README.md  // 以图形化方式查看README.md文件的本地版本库提交记录

git log -p README.md  // 查看README.md文件的本地版本库提交记录(显示出每次的修改内容)

git log --grep "test"  // 显示注释中含有test字符串的提交

git log --author=laoli // 查看本地版本库中作者为laoli的提交记录

git log -S "SplitPath(FString& str)"  // 查看SplitPath(FString& str)内容是什么时候加到项目中那些文件中去的

git log --since=2.weeks  // 查看最近2周的提交记录

git log --since="2 weeks 3 days 2 hours 30 minutes 59 seconds ago"  // 查看2周3天2小时30分59秒以前的提交记录

git log --after="2018-10-7" --before="2018-10-12"  // 查看2018.10.7~2018.10.12之间的提交记录

git log --since="2018-10-7" --until="2018-10-12"  // 功能同上:git log --after="2018-10-7" --before="2018-10-12"
                                                                            注:--since、--until 标记和 --after、--before 标记分别是等价的

git whatchanged README.md  // 查看README.md文件的本地版本库提交记录(包括文件改名)

git log --follow README.md  // 功能同上:git whatchanged README.md

git log -3 // 查看最近3条本地版本库提交记录

git log -3 --pretty --oneline  // 查看最近3条本地版本库提交记录(简洁模式,一行显示一个提交)

git log --graph --oneline  // 以图形化简洁模式查看当前分支的本地版本库提交记录

git log release --graph --oneline  // 以图形化简洁模式查看release分支的本地版本库提交记录

git log --graph --oneline --no-merges  // 以图形化简洁模式查看当前分支的本地版本库提交记录(过滤merge过来的提交)

git log --graph --oneline --merges  // 以图形化简洁模式查看当前分支的本地版本库提交记录(只显示有2个及以上父亲节点的提交)

git log --graph --oneline --name-only  // 以图形化简洁模式查看当前分支的本地版本库提交记录(并显示每次提交的文件名称清单)

git log --graph --oneline --name-status  // 以图形化简洁模式查看当前分支的本地版本库提交记录(并显示每次提交的文件状态、名称清单)

git log --graph --oneline --stat  // 以图形化简洁模式查看当前分支的本地版本库提交记录(并显示每次提交的文件变化统计、各文件名及增删记录)

git log --graph --oneline --shortstat  // 以图形化简洁模式查看当前分支的本地版本库提交记录(并显示每次提交的文件变化统计及增删记录)

git log --graph --oneline --decorate --all  // 以图形化简洁模式查看所有分支的本地版本库提交记录树

git log --graph --pretty=format:"%H - %an, %ad : %s"  // 自定义格式图形化查看所有分支的本地版本库提交记录树
%H 提交对象(commit)的完整哈希字串
%h 提交对象的简短哈希字串
%T 树对象(tree)的完整哈希字串
%t 树对象的简短哈希字串
%P 父对象(parent)的完整哈希字串
%p 父对象的简短哈希字串
%an 作者(author)的名字
%ae 作者的电子邮件地址
%ad 作者修订日期(可以用 --date= 选项定制格式)
%ar 作者修订日期,按多久以前的方式显示
%cn 提交者(committer)的名字
%ce 提交者的电子邮件地址
%cd 提交日期
%cr 提交日期,按多久以前的方式显示
%s 提交说明

git log master..v5.0  // 查看v5.0分支还未合并到master分支上的提交记录列表

git log v5.0..master  // 查看master分支还未合并到v5.0分支上的提交记录列表

git log master...v5.0  // git log master..v5.0 + git log v5.0..master

git shortlog -sn // 统计各个提交者的次数

git blame README.md  // 显示README.md最近一次的修改信息

git show 3a6c702376168aa15a2f3d7bc98000d07a70d023 README.md  // 查看README.md文件的3a6c702376168aa15a2f3d7bc98000d07a70d023提交的修改内容

git show HEAD // 查看最近一次提交的修改内容

git show --name-only HEAD  // 查看最近一次提交的文件列表(不显示具体的修改内容)

储藏区

git stash  // 将工作区中所有文件的修改备份压栈到储藏区,然后丢弃工作区与暂存区的所有文件的修改

git stash pop // 使用储藏区的栈顶处备份(stash@{0})来恢复当前分支的工作区,并将栈顶备份移除

git stash apply stash@{1} // 使用储藏区的栈顶下面一个备份(stash@{1})来恢复当前分支的工作区,但不移除储藏区中任何备份

git stash list  // 查看储藏区栈列表

git stash show -p stash@{0}  // 查看储藏区的栈顶处备份中各个文件的内容

git stash drop  // 直接移除储藏区的栈顶处备份(不用于恢复当前分支的工作区)

git stash clear // 清除储藏区栈列表

工作区

git clean -nd  // 探测工作区中有哪些未追踪状态的文件和目录

git clean -fd  // 删除工作区中未追踪状态的文件和目录

暂存区

git ls-files  // 查询暂存区中的文件列表(递归子目录)

git ls-files -s  // 查看暂存区中所有文件的blob数据块信息

git ls-files -s -- README.md  // 查看暂存区中的README.md文件的blob数据块信息

其他命令

git fsck --full // 列出所有未引用的blob、tree、commit对象

git archive --format zip --output ./file.zip master  // 将当前master分支所有文件使用zip压缩方式打包到./file.zip

git清理

git count-objects -v  // 查看git对象的统计信息

find .git/objects -type f -print0 | xargs -0 du -hk | sort -nr | head -5  // 查找git库中最大的5个文件(du -hk中的k代表单位为KB)

find .git/objects -type f -size +1M -print0 | xargs -0 du -hm | sort -nr | head -5  // 查找git库中size超过1M的最大的5个文件(du -hm中的k代表单位为MB)

git verify-pack -v .git/objects/pack/pack-b340eea7566df839294b71ec91a327ca2ece0b94.idx | sort -k 3 -nr | head -5   // 对压缩存储的git库查找最大的5个文件

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch FramePro.cpp' --prune-empty --tag-name-filter cat -- --all // 从git库的历史记录中彻底清理FramePro.cpp

git for-each-ref --format='delete %(refname)' refs/original | git update-ref --stdin  // 清理所有废弃的ref引用

git gc --prune=now  // ①将所有的对象压缩存储到pack二进制文件中,以节省空间和提高效率  ②移除与任何提交都不相关的陈旧对象

git reflog expire --expire=now --all  // 清除所有操作记录日志

以上就是git命令大全全部内容,感谢大家支持。

查看更多关于git命令大全的详细内容...

  阅读:97次