72

我不想在 a 之后丢失一些信息git pull,所以我做了 a git fetchbefore。我在哪里可以阅读 a 之后的新修改git fetch?我去了FETCH_HEAD档案,但只有一个大数字。

4

3 回答 3

100

git fetch origin默认情况下,从名为“origin”的远程获取所有内容并更新(或创建)该远程的所谓“远程跟踪分支”。比如说,对于包含名为“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

这意味着«所有可从“origin/master”访问的提交,不包括可从“master”访问的提交»,或者,

git log master..origin/master

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

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

请注意,您的本地分支也可能有匹配的远程分支不包含的提交(还)。要获得对它们的概述,您必须git log出于(希望)明显的原因反转传递给的修订。

像往常一样,在开始使用工具之前,教育 自己理解基本概念是很重要的。请做。

于 2012-05-21T12:57:29.293 回答
12

尝试

git log --oneline --decorate origin/master

这将为您提供远程master头部的更改日志origin(您可以根据需要替换任何其他远程分支)。你会得到一个有点像这样的输出:

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

于 2012-05-21T06:28:02.053 回答
12

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

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

如果您想查看当前版本和传入版本之间的所有差异,包括未提交的本地修改,请输入:

git fetch && git diff @{u} --name-only
于 2018-08-07T12:48:13.443 回答