Git:比较两个存储库之间的差异

Git:比较两个存储库之间的差异,git,Git,我们有一个模板repo,我们克隆它来创建我们的站点repo。当我们升级站点时,我们只需将模板repo拉入站点repo 我试图比较上次模板repo合并到的提交时站点repo中发生的变化。可能对模板回购做出了新的提交,但尚未合并,因此我不想在比较中包括这些提交 我可以使用 git diff template/master master 但这与模板repo中最近的提交进行了比较。有没有一种方法可以在某个特定的时间进行比较 差不多 git diff template/master@e9d5dd968

我们有一个模板repo,我们克隆它来创建我们的站点repo。当我们升级站点时,我们只需将模板repo拉入站点repo

我试图比较上次模板repo合并到的提交时站点repo中发生的变化。可能对模板回购做出了新的提交,但尚未合并,因此我不想在比较中包括这些提交

我可以使用

git diff template/master master
但这与模板repo中最近的提交进行了比较。有没有一种方法可以在某个特定的时间进行比较

差不多

git diff template/master@e9d5dd968 master
查看,这里使用的语法是:

   git diff [<options>] [--merge-base] <commit> <commit> [--] [<path>...]
       This is to view the changes between two arbitrary <commit>.
git diff[][--merge base][--][…]
这是为了查看两个任意变量之间的变化。
在这种情况下,
表示“任何涉及提交的内容”,包括:

  • 分支机构名称
  • 标记名
  • 提交ID
  • 相对引用(如
    HEAD^
  • 等等
换句话说,您可以运行
git diff
。因此,如果
e9d5dd968
是一个提交id,这似乎很可能,只需运行
git diff e9d5dd968 master

查看,这里使用的语法是:

   git diff [<options>] [--merge-base] <commit> <commit> [--] [<path>...]
       This is to view the changes between two arbitrary <commit>.
git diff[][--merge base][--][…]
这是为了查看两个任意变量之间的变化。
在这种情况下,
表示“任何涉及提交的内容”,包括:

  • 分支机构名称
  • 标记名
  • 提交ID
  • 相对引用(如
    HEAD^
  • 等等

换句话说,您可以运行
git diff
。因此,如果
e9d5dd968
是一个提交id,那么只需运行
git diff e9d5dd968 master

即可。我想我假设,由于提交被合并,它会将存储库与自身进行比较,而不是与模板repo进行比较。@DavidMaksimov:一旦您将另一个存储库的提交导入到存储库中,您的存储库就拥有所有提交。它们现在都是本地提交。它们不会像任何其他获取的提交一样合并在一起,但它们在您的存储库中,因此现在您可以通过散列ID对它们进行寻址。这就是为什么Git提交具有唯一散列ID的部分原因。这是我说Git与提交有关的众多原因之一。这不是一个分支、文件或任何东西的问题。每个提交都有一个唯一的散列ID,一旦它在存储库中,您就可以使用散列ID来查找它。分支名称、标记名称、远程跟踪名称和其他名称有两个好处:(a)它们可以帮助您找到提交,以及(b)它们可以防止提交被Grim收集器git gc剥离。一个
git-fetch
操作可以让你得到提交,并且通常会创建远程跟踪名称来保护它们。这似乎是可行的。我想我假设,由于提交被合并,它会将存储库与自身进行比较,而不是与模板repo进行比较。@DavidMaksimov:一旦您将另一个存储库的提交导入到存储库中,您的存储库就拥有所有提交。它们现在都是本地提交。它们不会像任何其他获取的提交一样合并在一起,但它们在您的存储库中,因此现在您可以通过散列ID对它们进行寻址。这就是为什么Git提交具有唯一散列ID的部分原因。这是我说Git与提交有关的众多原因之一。这不是一个分支、文件或任何东西的问题。每个提交都有一个唯一的散列ID,一旦它在存储库中,您就可以使用散列ID来查找它。分支名称、标记名称、远程跟踪名称和其他名称有两个好处:(a)它们可以帮助您找到提交,以及(b)它们可以防止提交被Grim收集器git gc剥离。一个
git-fetch
操作可以获得提交,并且通常会创建远程跟踪名称来保护它们。