首页 > 基础知识 > 10 个 Git 高效操作技巧,涵盖日常开发高频场景

10 个 Git 高效操作技巧,涵盖日常开发高频场景

2025-04-07 13:18:46

以下是 10 个 Git 高效操作技巧,涵盖日常开发高频场景(附极简示例):

一、撤销操作(精准回退)

# 撤销暂存区文件(保留修改)
git reset HEAD <file>  

# 撤销工作区修改(丢弃修改)
git checkout -- <file>  

# 回退到某次提交(保留历史)
git revert <commit-sha>  # 推荐,生成新提交撤销旧操作

二、分支管理(提速 50%)

# 基于远程分支新建本地分支(免 checkout -b)
git switch -c new-branch origin/main  

# 快速删除已合并分支
git branch -d <branch>  # 安全删除
git branch -D <branch>  # 强制删除未合并分支

# 查看所有分支的最后一次提交
git branch -v

三、提交优化(规范必备)

# 追加修改到最后一次提交(无需新开提交)
git commit --amend -m "新提交信息"  # 改信息/补文件都适用

# 拆分提交(后悔合并了多个修改)
git add -p  # 交互式暂存,逐行选择修改
git commit -m "细分提交 1"

四、历史操作(考古神器)

# 查看文件历史变更(含删除记录)
git log -p <file>  

# 搜索历史中的关键字
git log --grep="fix bug"  # 提交信息搜索
git log -S"old_value"  # 代码内容变更搜索

# 图形化历史(需先安装 tig)
tig log  # 空格键翻页,q 退出

五、临时处理(救急必备)

# 临时保存未提交修改(无需 commit)
git stash save "临时修改说明"  
git stash pop  # 恢复并删除 stash

# 对比 stash 与当前代码
git diff stash@{0}

六、远程协作(避坑指南)

# 强制拉取远程最新代码(覆盖本地)
git fetch --all && git reset --hard origin/main  

# 查看远程分支差异
git branch -r --no-merged  # 显示未合并的远程分支

# 取消本地追踪远程分支
git branch --unset-upstream

七、实用别名(效率翻倍)

# 配置个性化别名(~/.gitconfig)
[alias]
    lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
    co = checkout
    br = branch
    last = log -1 HEAD

配置后直接使用 git lg 查看图形化历史,git last 查看最后一次提交。

八、代码对比(细节控福音)

# 对比工作区与暂存区
git diff  

# 对比暂存区与上次提交
git diff --cached  

# 对比两个分支
git diff branchA..branchB  # 不包含 branchA 的提交
git diff branchA...branchB  # 包含两个分支共同祖先之后的差异

九、子模块管理(工程必备)

# 初始化子模块(克隆后首次使用)
git submodule update --init --recursive  

# 拉取子模块最新代码
git submodule foreach git pull origin main

十、安全操作(防删指南)

# 恢复误删的提交(未 GC 时)
git reflog  # 查看所有操作记录
git checkout <commit-sha>  # 恢复指定提交

记忆口诀
改暂存用 reset,改工作区用 checkout
追提交用 amend,删分支先看 --merged
查历史用 lg,存临时用 stash
远程冲突先 fetch,子模块必加 --recursive

这些技巧覆盖了 80% 的日常 Git 操作,建议结合 git help <command> 深入理解每个命令的工作原理~

使用 Ctrl+D 可将网站添加到书签
收藏网站
扫描二维码
关注早实习微信公众号
官方公众号
Top