git 高效命令
git log
- git log –pretty=oneline –abbrev-commit –graph 适合视觉化地理解复杂的分支和合并操作
- git log <file> 可以查看指定文件的提交历史记录,包括该文件的修改情况。
- git log –author=<author> 可以查看某个作者的提交历史记录。
- git log –since=<date> –until=<date> 可以查看某个时间范围内的提交历史记录。
git apply
- git apply –check <patch_file> 检查应用补丁是否会产生冲突,但不实际打入补丁,通常可用在脚本文件做判断
- git apply –cached <patch_file> 补丁将被应用到暂存区,改动只会在暂存区体现,不会影响工作目录中的文件
- git apply –index <patch_file> 选项将补丁应用到工作目录和暂存区。它不仅会更新暂存区的内容,也会更新工作目录中的文件。相当于先执行git apply,再执行git add
- git apply –stat <patch_file> 查看补丁对哪些文件做了修改
- git apply -R <patch_file> 撤销补丁修改
git restore
- git restore <file>: 撤销对指定文件的更改,并将其恢复为最近一次提交时的状态。
- git restore . 撤销所有未暂存的更改,恢复工作目录中所有文件为最近一次提交时的状态。
- git restore –staged <file> 撤销已add的修改
- git restore –source=<commit> <file> 指定恢复的版本
git show
- git show <commit> – <file-path> 查看某个特定提交中的某个文件的修改内容
- git show <commit> –stat: 显示简略的更改统计信息,包括修改的文件数量和行数变动。
- git show <commit> –name-only: 仅显示修改过的文件名,不显示具体更改内容。
- git show <commit> –name-status: 显示修改过的文件名以及修改状态(新增、修改、删除等)。
- git show <commit>:path/to/file 查看特定文件的变动
git checkout
- git checkout <branch> 切换分支
- git checkout <commit> 回退指定的版本
- git checkout <commit> – <path> 指定路径回退指定的版本
- git checkout – <file> 恢复文件到最近一次提交的状态
git blame
- git blame <file> 查看文件每一行的commit信息,便于追踪代码更改的来源
- git blame -L <start_line> <end_line> <file> 指定哪些行数的commit信息
git cherry-pick
- git cherry-pick <commit> 将其他分支的某个commit合入当前分支
- git cherry-pick <commit1>..<commit2> 应用一系列的连续提交,指定范围 [commit1, commit2)
- git cherry-pick <commit1>^..<commit2> 应用一系列的连续提交,指定范围 [commit1, commit2]
git stash
- git stash 将当前工作目录中的所有未暂存的更改保存到一个栈中。
- git stash push – <path> 将指定路径 <path> 的更改暂存起来。
- git stash push -m <stash message> 使用 -m 选项可以添加暂存时的消息
- git stash list 查看当前保存在栈中的所有暂存。
- git stash apply 恢复最近一次的暂存,但不会将其从栈中移除。
- git stash pop 命令可以恢复并删除最近一次的暂存。
- git stash apply <stash> 可以恢复指定的暂存,其中 <stash> 是暂存的索引或引用。
- git stash drop <stash> 可以删除指定的暂存,其中 <stash> 是暂存的索引或引用
other
- git reflog 展示 HEAD 指针最近的变化历史