Cherry-pick冲突与Git回滚

1. Git 回滚(适用于代码层面)

如果你的 UAT 环境是通过 Git 管理的(比如 release/uat 分支),可以通过以下方式回滚:

方法 1:git revert(推荐,保留历史记录)
bash 复制代码
# 找到要回滚的 commit(如 1724ab7442)
git log

# 回滚特定 commit(生成一个新的反向 commit)
git revert 1724ab7442

# 推送到远程
git push origin release/uat

在 Git 中,如果你希望在 cherry-pickmerge跳过某个文件的修改,可以使用以下几种方法:

如果只想 cherry-pick 部分文件
1. 检查当前冲突状态
bash 复制代码
git status

你会看到类似这样的输出:

bash 复制代码
Unmerged paths:
  (use "git restore --staged <file>..." to unstage)
  (use "git add <file>..." to mark resolution)
        both modified:   src/modules/srm/router.js

这说明 router.js 有冲突未解决。

2. 解决冲突
方法 1:手动解决冲突
  1. 打开冲突文件 src/modules/srm/router.js,找到 <<<<<<<=======>>>>>>> 标记的冲突部分。
  2. 手动修改文件,保留你想要的代码,并删除冲突标记。
  3. 标记冲突已解决:
bash 复制代码
git add src/modules/srm/router.js
3. 继续 cherry-pick

冲突解决后,继续执行:

bash 复制代码
git cherry-pick --continue
4. 如果只想 cherry-pick 部分文件

如果你想跳过 router.js,只提交其他文件的修改:

  1. 先解决冲突(按上述方法)。
  2. 重置 router.js 到原始状态:
bash 复制代码
git reset src/modules/srm/router.js  # 从暂存区移除
git checkout src/modules/srm/router.js  # 恢复文件到 HEAD 状态
  1. 提交剩余文件:
bash 复制代码
git commit -m "cherry-pick 7c5330430b, 跳过 router.js"
如果只想保留其中一个提交,可以这样修改
bash 复制代码
# 1. 确保当前在 feature/20250723_ex_heshuang1_prod 分支
git checkout feature/20250723_ex_heshuang1_prod

# 2. 启动交互式变基(修改最近2个提交)
git rebase -i HEAD~2

# 3. 在编辑器中修改:
#    将第二个提交的 `pick` 改为 `drop`(或直接删除该行)
pick 8a7a6bb feature: 新增用户失效校验
drop bcb6b01 Revert "feature: M3和M4指标明细增加事业部和品类"

# 4. 保存退出(Vim中按`:wq`)
# 5. 强制推送到远程(需权限)
git push origin feature/20250723_ex_heshuang1_prod --force
相关推荐
恋喵大鲤鱼9 小时前
git mv
git·git mv
Patrick_Wilson13 小时前
Git Worktree 原理详解:从 objects / refs 看懂多分支并行与多 Agent 协作
git·面试·ai编程
yaoxiaoganggang13 小时前
克隆 Superpowers 的规则库到你的本地(或者直接作为 Git Submodule)
人工智能·经验分享·git·ai编程
Python私教15 小时前
用 Claude Code 做大型重构不翻车:分批+Git 兜底+验证闭环的实战流程(2026)
git·重构·ai编程·代码重构·工程实践·claude code
Shawn Dev16 小时前
团队协作中的 Git Tag 最佳实践:从入门到精通
大数据·git·elasticsearch
独隅18 小时前
Git/GitHub/GitLab/Gitee 核心对比指南
git·gitlab·github
佛山个人技术开发18 小时前
GitCode个人技术开发者总结完整使用指南
windows·git·svn·github·gitcode
江华森19 小时前
基于 Git 的自动集成交付(Git-Driven CI/CD)实战
git·ci/cd
Dontla20 小时前
.gitkeep文件作用(让Git追踪空目录,使该目录能被纳入版本控制)!.gitkeep
大数据·git·elasticsearch
shandianchengzi20 小时前
【记录】VSCode|Windows 下 VS Code 配置 Git Bash 为默认终端完整教程
windows·git·vscode·bash