git - Git - 检查是否在 git merge 中手动取消了某些文件
问题描述
设想:
在针对 的feature
分支合并请求中development
,我们可以看到feature
分支从 还原了一些更改development
,尽管没有显式还原或手动更改。这使我们相信feature
分支中的某处可能存在不正确的合并。
我们怀疑development
在早些时候合并分支feature
时,其中一位开发人员意外取消了一些合并更改。
有没有简单的方法来验证是否是这种情况?
检查合并提交的详细信息时,它只显示添加到提交中的文件,但显然不显示开发人员手动取消暂存的文件。
解决方案
您正在尝试检查提交内容与理论合并内容。您可以做的是空运行合并以检测冲突。
https://stackoverflow.com/a/63777004/5237940提供了执行此操作的第一个提示。您可以对其进行调整以获取在合并期间将执行的更改的完整列表:
git merge-tree <base> <commit or branch 1> <commit or branch 2> |grep -E -- ' their | our |changed |merged|added|removed'
这将为您提供如下输出:
removed in local
their 100644 5b194c882f6f8f0d0453b5df5a798d3164e432ed README.txt
changed in both
our 100644 4825357e4088a083f0fee644c51c32a13d6a3df3 bar
their 100644 0984a2a7a75695e942f0d16a89dd68a988c35c3a bar
changed in both
our 100644 be89542ce50400c455c8715f0a2d3b12ee8d9a58 foo
their 100644 ff14dbf9569ae99b880339588b3bcbf84687f5e6 foo
要简单地获取文件列表:
git merge-tree <base> <commit or branch 1> <commit or branch 2> |grep -E -- ' their | our ' | awk '{print $NF}' |sort -u
你得到:
bar
foo
README.txt
然后你可以使用
git diff --name-only
获取由您的真实提交修改的文件
推荐阅读
- java - 为什么 JDBC 中的搜索功能在我的代码中不起作用?
- reactjs - 承诺调用中的承诺后如何正确更新组件的状态?
- jquery - 每当我将边距放在圆形或方形元素上时,元素就会消失。我能知道这是什么原因吗?
- android - 登录按钮不起作用 Android Kotlin
- asp.net - 如何设置它的返回类型并显示相关的烤面包机作为响应
- jquery - 使用 jQuery 和固定背景图像在 Safari 上滚动抖动
- objective-c - 获取一周的开始和结束日期。月份、周数和年份作为用户输入给出
- twitter-bootstrap - 将鼠标悬停在 href 上时显示 Font Awesome 图标右对齐,单击时带有单独的链接
- python - 如何在找到其最佳值的同时设置K的范围?
- c# - 石英 SimpleScheduleBuilder 在 c# 中具有基本时间和间隔