当前和最新版本之间的Git差异

3
我有两个克隆版本的仓库(工作副本)——比如A和B。现在,在B中,我对文件filename进行了更改,提交并推送。A没有被修改。现在,在拉取A之前,我想看看pull会带来哪些新的变化。
我尝试过:
git diff
git diff HEAD
git diff HEAD:filename   filename

但是它们都没有显示差异(空输出)。如何正确查看本地副本和头部之间的差异(我检查了其他答案,对它们的理解是上述内容,但似乎没有一个有效)。
注意:我最近从svn转到git。所以我想的方式是:A和B只是同一个“分支”的副本。不确定理解/术语是否正确。
1个回答

4

你需要先获取,然后才能查找差异:

cd A
git remote add B /path/to/B
git fetch B

git diff master B/master

你可以在“如何在git中查看传入的提交”中查看其他差异。


我已经在服务器上安装了gitolite。那里有一个仓库,称为ProjectXYZ
现在,在两台不同的机器上使用git clone user@reposerver:ProjectXYZ.git获取AB

然后:

# on machine B
cd B/
git push -u origin master

# on machine A
cd A/
git fetch
git diff master origin/master

嗯,A和B在不同的机器上。它们都是(origin/master)的副本(抱歉-我刚从svn切换到git,所以可能术语有误!)。我不确定git remote add B /path/to/B会做什么,实际上也不知道如何指定它。 - workwise
@WorkWise是A和B两个仓库的克隆副本,它们都可以作为参考。 - VonC
嗯 - 基本上我已经在服务器上安装了gitolite。而且那里有一个仓库,叫做ProjectXYZ。现在,A和B是通过在两台不同的机器上使用git clone user@reposerver:ProjectXYZ.git命令来获取的。 - workwise
@WorkWise然后你可以从B执行git push命令,以及从A执行git fetch命令(无需添加其他远程)。我在答案中提到的git diff命令将会给出你想要的差异。 - VonC
我在 A 中执行了 git fetch,然后 git diff master origin/master 有效。谢谢。 - workwise
感谢 @VonC。我学会了新的 fetch 命令,对于 克隆副本 和分支的理解也增加了。 - workwise

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接