一、代码撤销与回退
温柔撤销
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
0 件のコメント:
コメントを投稿