gpt4 book ai didi

git - 两个补丁之间的差异

转载 作者:行者123 更新时间:2023-12-02 21:05:52 24 4
gpt4 key购买 nike

假设我有一个开发分支,并且在某个功能分支中工作,其中我有一个或多个提交,我不断修改提交并与其他一些分支进行 rebase (以保持提交历史记录干净,以供将来使用) )。在每个阶段,我都会在本地进行与开发相关的差异。所以我有一组差异,我想看看它们之间的区别。我怎样才能轻松做到这一点?我可以使用什么样的 git 命令序列?

更新

解决方案是有两个与开发相关的差异。在开发中拥有存储库的副本,应用第一个差异。复制花药并应用另一个补丁。使用一些比较工具并比较两个存储库。这将是我所期望的结果。这种方法的问题是我需要至少有两个存储库副本,并使用一些工具来比较目录。另一种可能更好的方法是使用两个分支,应用补丁并提交更改,然后比较分支。问题: git 命令中是否有更简单的东西可以做到这一点?比如拿这个分支和两个 diff 文件,返回给我 diff?

最佳答案

您的第二个工作流程就是答案。这是一个可能的别名:

diffdiff = !git stash save -u -q &&
git apply $1 && git add -A && git commit -q -m"1" &&
git reset --hard HEAD@{1} -q &&
git apply $2 && git add -A && git commit -q -m"2" &&
git reset --hard HEAD@{1} -q && git stash pop -q &&
git diff HEAD@{3} HEAD@{1} && :

在您想要应用位于存储库外部的差异文件的差异的分支上调用它。

git diffdiff <diff_file_1> <diff_file_2>

不是多平台解决方案,已在 osx 上使用 zsh 和 bash shell 进行测试。如果您可以手动执行此操作,那么它会更简单,这里的大部分复杂之处在于提供一种万无一失的解决方案。另外,第一行输出是噪音,似乎 git stash pop 不遵守 --quiet 参数。

(编辑:不需要临时分支,所以我简化了别名。)

关于git - 两个补丁之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36032557/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com