pull-在哪里可以找到由于`git fetch`引起的变化

git pull之后,我不想丢失一些信息,所以我之前做了git fetchgit fetch之后,在哪里可以阅读新的修改? 我转到了FETCH_HEAD文件,但仅此而已。

epsilones asked 2020-07-13T13:50:41Z
3个解决方案
64 votes

git log默认情况下从名为“源”的远程中获取所有内容,并为该远程更新(或创建)所谓的“远程跟踪分支”。 假设,对于包含名为“ master”和“ feature”的分支的名为“ origin”的远程服务器,运行git fetch remote将导致名为“ origin / master”和“ origin / feature”的远程跟踪分支得到更新(或创建,如果 他们不存在)。 您可以在git branch -a的输出中看到它们(注意“ -a”)。

现在,通常的Git设置是(某些)本地分支遵循某些远程分支(通常是同名的)。 也就是说,您本地的“ master”分支遵循“ origin / master”等。

因此,在获取之后,要查看与本地“ master”相比,远程“ master”是什么,请让Git确切显示以下内容:

git log origin/master ^master

这意味着“所有可从“来源/主服务器”到达的提交不包括可从“主服务器”到达的提交”或者

git log master..origin/master

具有相同的含义。 有关更多信息,请参见“ gitrevisions”手册页,尤其是“指定范围”部分。 另请参阅git-log手册页中的示例

您可以随意自定义git log的输出,因为它支持影响它的很多选项。

请注意,您的本地分支可能还包含匹配的远程分支尚未包含的提交(尚未)。 要获得它们的概述,您必须出于显而易见的原因而撤销传递给git log的修订。

像往常一样,在开始使用工具之前,必须教育您自己了解基本概念。 拜托

kostix answered 2020-07-13T13:51:32Z
5 votes

尝试

git log --oneline --decorate origin/master

这将为您提供(master)远程服务器的master头的更改日志(您可以根据需要替换任何其他远程分支)。 您将获得类似以下的输出:

234121 (origin/master) Commit message 5
872373 Commit message 4
623748 Commit message 3
235090 (master) Commit message 2
192399 Commit message 1

标为(master)的提交是本地master分支的头。 标为(origin/master)的提交是遥控器master分支的头。

Barend answered 2020-07-13T13:52:01Z
5 votes

如果您只想查看执行GIT PULL会修改哪些文件,请执行以下操作:

git fetch && git diff HEAD @{u} --name-only

如果要查看当前版本与传入版本之间的所有差异,包括未提交的本地修改,请键入以下内容:

git fetch && git diff @{u} --name-only
Eliezer Berlin answered 2020-07-13T13:52:26Z
translate from https://stackoverflow.com:/questions/10678495/where-to-find-changes-due-to-git-fetch