在哪里可以找到由于“ git 获取”而产生的更改

我不想在 git pull之后丢失一些信息,所以我以前做过 git fetch。我在哪里可以阅读后 git fetch的新修改?我查看了 FETCH_HEAD文件,但只有一个大号码。

41452 次浏览

试试看

git log --oneline --decorate origin/master

这将为您提供来自 origin远程的 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分支的头。

默认情况下,git fetch origin从远程名为“ source”的地方获取所有内容,并为该远程更新(或创建)所谓的“远程跟踪分支”。例如,对于包含名为“ master”和“ Feature”的分支的远程命名的“ source”,运行 git fetch remote将导致名为“ source/master”和“ source/Feature”的远程跟踪分支被更新(或者创建,如果它们不存在的话)。您可以在 git branch -a的输出中看到它们(注意“-a”)。

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

因此,在获取之后,要查看远程“ master”与本地“ master”的比较,可以让 Git 向您展示以下内容:

git log origin/master ^master

这意味着所有可以从“原产地/主人”达到的提交(不包括可以从“主人”达到的提交) ; 或者,也可以这么说

git log master..origin/master

意思是一样的。有关更多信息,请参见 “ git 修订版”手册页,特别是“指定范围”部分。请参阅 Git-log 手册页中的示例

您可以自由地定制 git log的输出,因为它支持许多影响它的选项。

请注意,您的本地分支也可能提交了匹配的远程分支尚未包含的提交。为了获得它们的概览,你必须逆转传递给 git log的修订版本,(希望)原因是显而易见的。

像往常一样,在开始使用工具之前,理解基础概念对于 教育 你自己来说是必不可少的。请吧。

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

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

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

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