SourceTree:如何在相反方向进行 git diff?

问题描述 投票:0回答:5

如何在 Atlassian SourceTree 桌面应用程序中以相反方向执行

git diff
?换句话说,我如何让 SourceTree 执行
git diff b a
而不是
git diff a b

例如,如果我的提交在我的提交窗格中按以下顺序排列:

  3333
  2222
  1111

我选择 3333 和 1111,它将显示从 1111 到 3333 的变化差异(即

git diff 1111 3333
)。

如何让它在另一个方向上做

git diff
,以便它是从 3333 到 1111 的变化差异(即
git diff 3333 1111
)?

(注意:这个问题具体是关于如何在 Atlassian SourceTree 桌面应用程序中执行此操作,而不是 一般如何在 git 中执行此操作。)

Here is a screenshot showing where I selected 2 commits in SourceTree to see the diff

git git-diff atlassian-sourcetree
5个回答
11
投票
假设您需要将特定分支与当前分支进行比较,唯一的方法是

Berik 答案,因为不可能将分支作为第二个参数通知。

所以这显示了不同的正常顺序:

git diffbranch_abc Makefile

这显示了相反顺序的差异:

git diff -Rbranch_abc Makefile


5
投票
这在 SourceTree 中是不可能的。

我在answers.atlassian.com上问了这个问题

,并从Atlassian员工那里发现,无法在相反方向上进行差异,提交之间的差异始终以“前向历史记录”顺序显示. 一些替代方案:

使用不同的外部 GUI 差异查看器
  1. -或-


    将旧提交 1111 中的文件复制到新提交 3333 的工作树中,然后查看工作树中的差异,例如,
$ cd {repo} $ git diff --name-only 3333..1111 > /tmp/list_of_files_changed $ git checkout 1111 $ mkdir /tmp/files_changed $ cp --parents -pr $(cat /tmp/list_of_files_changed) /tmp/files_changed $ git checkout 3333 $ cp -pr /tmp/files_changed/* . # (now look at the diff in SourceTree for the working copy)
    

0
投票

这可能不会在所有情况下都有帮助,但对我来说,确实如此。


-1
投票

$ git diff HEAD 21da2e

-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
 import java.net.SocketException;
-import java.net.URL;
+import java.net.URI;
$ git diff 21da2e HEAD

+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
 import java.net.SocketException;
-import java.net.URI;
+import java.net.URL;


-4
投票

# will display the additions as + and subtractions as - git diff first second # will display the additions as - (in red) and subtractions as + (in green) git diff second first

这应该在标准 git 中工作得很好。

© www.soinside.com 2019 - 2024. All rights reserved.