Git高级用法完全指南


Git高级用法完全指南

大多数开发者每天都在使用Git的基本命令。但当你遇到需要整理提交历史、精准应用某次提交、或者解决复杂的代码冲突时,就需要掌握Git的高级用法了。本文将深入讲解rebase、cherry-pick等高级命令的使用技巧。

一、交互式Rebase

交互式rebase是整理Git历史最强大的工具,可以合并、修改、重排、删除提交:

# 修改最近3次提交
git rebase -i HEAD~3

# 可用操作:
# pick   - 保持不变
# reword - 修改提交信息
# edit   - 暂停rebase,修改提交内容
# squash - 合并到上一个提交
# fixup  - 合并但丢弃提交信息
# drop   - 删除提交

二、cherry-pick精准应用提交

# 应用单个提交
git cherry-pick abc1234

# 应用多个提交
git cherry-pick abc1234 def5678

# 只应用不提交(可修改后再提交)
git cherry-pick -n abc1234

# 解决cherry-pick冲突
git add .
git cherry-pick --continue

# 放弃cherry-pick
git cherry-pick --abort

三、高效解决冲突

# 查看冲突文件
git diff --name-only --diff-filter=U

# 快速选择某一方的版本
git checkout --theirs file.js  # 使用incoming版本
git checkout --ours file.js    # 使用当前版本

# 使用mergetool可视化
git mergetool --tool=vscode

# 记录冲突解决方案(自动复用)
git config --global rerere.enabled true

四、其他高级技巧

# reflog - 找回丢失的提交
git reflog
git reset --hard abc1234

# bisect - 二分查找Bug引入点
git bisect start
git bisect bad
git bisect good v1.0.0

# stash高级用法
git stash save "描述"
git stash list
git stash apply stash@{0}
git stash drop stash@{0}

# 清理未跟踪文件
git clean -fd  # 删除未跟踪文件
git clean -fdn # 预览要删除的文件

Git的高级命令虽然强大,但在操作公共分支时一定要谨慎。rebase会改写历史,永远不要对已推送的公共分支执行rebase。在团队中建立统一的Git工作流规范,可以减少冲突和误操作。


0.084655s