首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在每次提交时使用Git diff工具?

在每次提交时使用Git diff工具?
EN

Stack Overflow用户
提问于 2012-07-27 00:04:50
回答 5查看 3K关注 0票数 12

我想运行git difftool HEAD~3.. path/to/file并让git为这三个提交中的每一个打开difftool,这样我就可以看到每个提交的并排视图。

我该如何让git-difftool做到这一点呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-07-31 01:39:00

这将实现您所描述的:

代码语言:javascript
复制
git difftool HEAD~3 HEAD~2 path/to/file
git difftool HEAD~2 HEAD~1 path/to/file
git difftool HEAD~1 HEAD path/to/file

想要自动化这个过程吗?总是提交三次吗?您想要三向合并吗?

更新:

如果答案是yes-yes-no,那么解决方案将是:

代码语言:javascript
复制
for i in {3..1}; do
  git difftool HEAD~$i HEAD~$((i-1)) path/to/file
done

更新:

如果答案是yes-no-yes,这基本上就是@ruffin问here的问题。请看我的答案。

票数 6
EN

Stack Overflow用户

发布于 2012-07-31 01:42:37

或者你可以直接运行git log -p --它做的和你想做的差不多

票数 10
EN

Stack Overflow用户

发布于 2012-08-04 01:07:30

更新:

Matthieu Moy建议更好的变体:

代码语言:javascript
复制
for rev in $(git rev-list <committish>.. ); do
    git difftool ${rev} ${rev}~1;
    done

老版本的答案是:

我会说你应该这样做:

代码语言:javascript
复制
git rev-list <commitish>.. | wc -l

代码语言:javascript
复制
git log --oneline <commitish>.. | wc -l

这会计算出你的<commitish>和HEAD之间有多少个修订版。

然后,使用这个数字,您可以自动运行提交以查看差异

代码语言:javascript
复制
c=`git log --online <commitish>.. | wc -l`

while ! ${c} eq 0 ; do

git difftool HEAD~${c} HEAD~${($c-1)}
c=${c}-1
done
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11673434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档