假设我有一个开发分支,并且我在某个特性分支中工作,在其中我有一个或多个提交,我不断地修改提交,以及使用其他分支对它们进行重基(以便为将来保持提交历史干净)。在每个阶段,我做的地方不同的发展。所以我有一组不同之处,我想看看它们之间的区别。我怎么能轻易做到呢?我可以使用什么样的git命令序列?
更新
解决办法是有两个与发展有关的差异。在开发中拥有存储库的副本,首先应用diff。有另一个副本,并应用另一个补丁。使用一些comarison工具并比较两个存储库。这将是我所期望的结果。这种方法的问题是,我需要至少有两个存储库的副本,并使用一些工具来区分目录。另一种可能更好的方法是使用两个分支,应用补丁和提交更改,然后比较分支。问题是:在git命令中有什么更简单的东西可以这样做吗?就像拿走这个分支,和两个不同的文件,还我吗?
发布于 2016-03-16 21:10:07
你的第二个工作流程就是答案。这里有一个可能的别名:
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} && :在分支上调用它,在分支中使用位于存储库之外的diff文件应用差异。
git diffdiff <diff_file_1> <diff_file_2>不是用zsh和bash shell在osx上测试的多平台解决方案。如果您可以手动完成它,这是相当简单,这里的许多复杂是提供了一种万无一失的解决方案。另外,输出的第一行是噪音,似乎git存储的pop不服从-静音参数。
(编辑:不需要临时分支,所以我简化了别名。)
https://stackoverflow.com/questions/36032557
复制相似问题