我有两个长期运行的分支dev
,以及一个遥远的未来版本称为future
。我们通过从显示错误的标签分支、修复它,然后向两个分支打开拉取请求来为受支持的版本创建修复程序。如果“未来”分支中存在冲突,我们的开发人员应该创建一个新分支,解决冲突,并向未来打开另一个 PR。
不幸的是,我们的团队足够大,以至于很多第二个 PR 还没有被制作出来。我现在需要弄清楚哪些具体提交导致了冲突。我可以手动执行此操作,方法是在每个冲突的文件上运行 gitblame,并查看文件两侧的提交======
行,但这实际上并没有给我足够的信息,而且我必须为每个冲突和每个文件手动运行 gitblame。
有更容易的方法吗?理想情况下,我想要相当于:
Commit X: <coworker1> I updated something.
Commit Y: <coworker2> Something fixed.
Conflicts:
some/file/here
a/different/file.
对于每一个冲突。
尽管任何只给我冲突提交列表的东西都足以保证赏金。
你可以很容易地接近:
git ls-files -u | cut -f2- | uniq \
| while read conflicted; do
echo @@@ conflicted file $conflicted touched in this merge by:
git log HEAD...MERGE_HEAD --left-right --format=' %h %aN %s' -- "$conflicted"
done
实际上,这只是您关心的右分支(正在合并的分支)提交作者 - 左分支已经被合并,让任何触及您已经得到的内容的人都可以解决它。
Add --topo-order
使用 log 命令来列出每个分支的提交。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)