原因:我想使用差异工具比较两个任意不同的提交。我知道这些提交的哈希值,但是我不想复制这些哈希值,因此我正在寻找一条命令,可以执行类似以下的操作
命令如下:$ log_str=$(git log --all -S"new_tour <-" --pretty=format:"%h")
$ git difftool -t kdiff3 log_str[1] log_str[2] myfile.txt
- 我希望能够处理任意的索引,而不仅仅是1和2。
- 如果答案可以提示如何确定
log_str
的结构,那将非常好。它是字符吗? 字符数组? 列表? ... 使用Bash。
我在这里和这里找到了一些相关的帮助,但我无法使其工作。
现在我做:
$ git log --pretty=format:"%h"
3f69dc7
b8242c6
01aa74f
903c5aa
069cfc5
and
$ git difftool -t kdiff3 3f69dc7 b8242c6 myfile.txt
git diff HEAD~1 HEAD
命令吗?这就是你当前所拥有的命令。(与git show
命令相同) - hek2mglgit rev-list
而不是git log
:它专为脚本设计。 - torekgit rev-list -S"new_tour <-" --pretty=format:"%h"
不起作用。我有什么遗漏吗? - Christoph--all
参数;在这里你需要使用它或者HEAD
(这是与git log
的一个重要区别,如果没有给定其他修订版本的起始点,git log
会默认使用HEAD
)。完全删除--pretty
参数:rev-list 的主要工作是列出修订版本哈希 ID,因此默认情况下就是这样做的。 - torek