一、代码撤销与回退
温柔撤销:
git reset HEAD^: 撤销最后一次提交,但保留修改内容(适合修改后重新提交)彻底回退:
git reset --hard <commit-id>: 回到指定提交状态,丢弃之后所有更改(慎用!会丢失代码)紧急重置:
git reset --hard HEAD: 放弃所有未提交的修改(常用于终止合并冲突)温柔重置:
git reset --soft origin/xxxx: 将当前分支重置到远程分支的状态,但保留所有本地更改为已暂存状态(适合用于同步远程分支,同时保留本地修改)安全撤销:
git revert <commit-id>: 新建提交来撤销指定更改(适合已推送的代码)选择添加:
git cherry-pick <commit-id>: 将指定提交应用到当前分支(适合精准移植特定修改)
二、冲突解决技巧
遇到冲突时,快速选择版本:
git checkout --theirs <file>→ 采用对方版本git checkout --ours <file>→ 保留自己版本git checkout --theirs .→ 所有文件用对方版本git checkout --ours .→ 所有文件用自己版本
💡 适用场景:合并分支时明确需要采用某一方完整代码
三、提交优化
- 修改最近提交
git commit --amend -m "新信息"→ 修改提交信息git commit --amend --no-edit→ 只添加漏掉的文件
- 紧急提交
git commit --no-verify -m "热修复"→ 跳过代码检查钩子(如 ESLint),慎用!
四、高效别名配置
在 ~/.gitconfig 中添加:
[alias]
ac = "!git add -A && git commit -m" # 一键提交
newbr = "!f() { git checkout -b $1; }; f" # 快速建分支
或使用命令添加:
# git 组合命令配置
git config --global alias.ac "!git add -A && git commit -m"
# git 带参数的别名
git config --global alias.newbr "!f() { git checkout -b $1; }; f"
使用示例:
git ac "修复登录bug"
git newbr feature-123