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 指针最近的变化历史