你可能不太会用的10个Git命令

你可能不太会用的10个Git命令
最新回答
李拔皮

2020-09-07 07:40:35

以下是10个可能不太常用但实用的Git命令及其核心用法:

检查类命令
  1. git diff

    查看所有本地文件的改动,若需检查单个文件,可在命令后添加文件名。

    示例:git diff README.md(仅查看README.md的改动)。

  2. git log

    查看完整提交历史,支持按文件筛选(git log -p my_file)。

    退出日志查看模式需按 q 键。

  3. git blame my_file

    显示文件每行代码的修改者、提交时间及哈希值,便于追踪责任或历史。

    示例:git blame app.py(查看app.py的修改记录)。

  4. git reflog

    记录本地HEAD的所有变更日志,可用于恢复丢失的提交或分支。

    适用场景:误操作后找回未推送的提交。

撤销类命令
  1. git reset --hard HEAD

    彻底撤销最近一次提交后的所有改动(包括暂存区和非暂存区)。

    警告:会永久删除未提交的更改,慎用!

    指定提交哈希可撤销至更早状态:git reset --hard abc123。

  2. git checkout my_commit

    撤销工作目录中未暂存的改动,常用HEAD表示最近一次提交。

    切换分支用法:git checkout branch_name(更新工作目录至目标分支状态)。

  3. git revert my_commit

    生成新提交以撤销指定提交的更改,安全适用于协作分支。

    示例:git revert abc123(创建反向提交而非删除历史)。

  1. git clean

    删除未追踪文件或目录:

    -n:试运行(不实际删除)。

    -f:强制删除文件。

    -d:包含未追踪目录。

    默认忽略.gitignore中的文件,可通过配置修改。

整理类命令
  1. git commit --amend

    将暂存区更改合并到最近一次提交,或修改提交信息(仅限未推送的提交)。

    示例:git commit --amend -m "更新提交信息"。

  2. git push my_remote --tags

    将所有本地标签推送到远程仓库,常用于版本发布标记。

    配合工具(如bump2version)可自动化版本管理。

附加技巧
  • 逃离Vim编辑器

    i 进入插入模式。

    输入提交信息。

    Esc 退出插入模式。

    输入 :x 保存并退出。

  • 更改默认编辑器

    git config --global core.editor "atom --wait"

    将默认编辑器改为Atom(需已安装)。

  • 创建命令快捷键:在.bash_profile中添加别名(如alias gs='git status'),简化操作流程。

这些命令覆盖了版本控制中的检查、撤销、整理及效率优化场景,合理使用可显著提升Git操作效率。