两个远程服务器上的git diff(git git --no-index之外)

时间:2017-07-29 17:30:03

标签: linux git bash ssh

是否可以通过ssh在两个远程服务器上使用命令git diff --no-index。

我想在非存储库中使用命令git diff的输出。两个远程ssh目录之间。

2 个答案:

答案 0 :(得分:0)

我从未在服务器之间桥接diff命令,但实际上......您只是使用diffgit diff使用您可用的任何系统指定的diff工具来比较不同的版本,并且由于--no-index允许您比较非版本化文件,diff是您最好的赌注。

答案 1 :(得分:0)

您可以尝试以下方法:

# Get the working tree from repo 1:
git archive --format=zip --remote=ssh://<user>@<host>/repo1/<repo1 name> <tag or HEAD> > archive1.zip

# Get the working tree from repo 2:
git archive --format=zip --remote=ssh://<user>@<host>/repo2/<repo2 name> <tag or HEAD> > archive2.zip

mkdir tmpdir tmpdir2
(cd tmpdir; git init .)

# Unzip archive1 into tmpdir, make a temporary git repo out of it:
(cd tmpdir; unzip ../archive1.zip ; git add .; git commit -a -m "archive1")

# Move the .git directory to tmpdir2:
mv tmpdir/.git tmpdir2

# Unzip archive2 into tmpdir2, and compare:
(cd tmpdir2; unzip ../archive2.zip ; git diff ) > git-diff.txt

# Cleanup:
rm -rf tmpdir tmpdir2 archive1.zip archive2.zip