2025年8月6日水曜日

Git 高效操作指南:撤销、冲突解决与实用技巧

 

一、代码撤销与回退

  1. 温柔撤销

    git reset HEAD^

    → 撤销最后一次提交,但保留修改内容(适合修改后重新提交)

  2. 彻底回退

    git reset --hard <commit-id>

    → 回到指定提交状态,丢弃之后所有更改(慎用!会丢失代码)

  3. 紧急重置

    git reset --hard HEAD

    → 放弃所有未提交的修改(常用于终止合并冲突)

  4. 温柔重置

    git reset --soft origin/xxxx

    → 将当前分支重置到远程分支的状态,但保留所有本地更改为已暂存状态(适合用于同步远程分支,同时保留本地修改

  5. 安全撤销

    git revert <commit-id>

    → 新建提交来撤销指定更改(适合已推送的代码)

  6. 选择添加

    git cherry-pick <commit-id>

    → 将指定提交应用到当前分支(适合精准移植特定修改

二、冲突解决技巧

遇到冲突时,快速选择版本:

  • git checkout --theirs <file> → 采用对方版本

  • git checkout --ours <file> → 保留自己版本

  • git checkout --theirs . → 所有文件用对方版本

  • git checkout --ours . → 所有文件用自己版本

💡 适用场景:合并分支时明确需要采用某一方完整代码

三、提交优化

  1. 修改最近提交

    • git commit --amend -m "新信息" → 修改提交信息

    • git commit --amend --no-edit → 只添加漏掉的文件

  2. 紧急提交
    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 件のコメント:

コメントを投稿