如何在 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 中执行此操作。)
Berik 答案,因为不可能将分支作为第二个参数通知。
所以这显示了不同的正常顺序:
git diffbranch_abc Makefile这显示了相反顺序的差异:
git diff -Rbranch_abc Makefile
我在answers.atlassian.com上问了这个问题
,并从Atlassian员工那里发现,无法在相反方向上进行差异,提交之间的差异始终以“前向历史记录”顺序显示. 一些替代方案:
使用不同的外部 GUI 差异查看器
$ 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)
这可能不会在所有情况下都有帮助,但对我来说,确实如此。
$ 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;
# 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 中工作得很好。