Git - 区分范围但忽略 merge

标签 git merge diff git-diff

情况是这样的:

我正在审查一项包含 30 多个提交的重大任务。已经经历了一个审查和修复周期,现在我想审查仅修复。问题是,同时大约 200 多个提交从 master merge 到功能分支:

         code review
              ↓
    B---D---F---H---J---L---M---N---O feature
   ↗                   ↗
--A---C---E---G---I---K master

如何将 HO 范围的更改区分到 F,同时忽略 merge 中的内容?

由于很多冲突,Rebase 很麻烦。

最佳答案

假设 L 是 merge 提交,你可以在 O 上创建一个临时分支,检查它然后运行 ​​git rebase --onto J L。这样,新分支会跳过 L 提交,git diff F 仅包含由提交 H、J、M、N、O 引入的更改.确保在开始之前没有未提交的更改。现有分支不受影响。

命令是:

git checkout -b temp O
git rebase --onto J L
git diff F

当您结束审核时,您可以运行:

git checkout feature
git branch -D temp

再次检查 feature 并删除临时分支。

关于Git - 区分范围但忽略 merge ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49530781/

相关文章:

excel - 如何在 Beyond Compare 中查看 Excel 工作簿的 xltrail 生成差异?

在不同文件上使用差异时,Makefile 失败

binary - 三路二进制(十六进制)文件比较工具?

git - 为什么我可以在 Mac OS X 中查看某些 Unix 可执行文件,而其他的则不能?

git - 如何从 git 存储库获取最后提交日期?

tfs - 合并如何在 TFS 2010 中工作?

pandas - 重新索引仅对具有唯一值的索引对象有效

git - 我应该如何使用 .gitignore?

git - 为什么 "git describe"在我干净的 git repo 副本上显示旧标签版本?

svn - 为什么在将分支合并到主干然后将其合并回分支时会发生冲突?