在哪里可以找到由于`git fetch`引起的更改

dkqlctbz  于 2023-05-21  发布在  Git
关注(0)|答案(4)|浏览(86)

我不想在git pull之后丢失一些信息,所以我之前做了git fetch。在哪里可以读取git fetch之后的新修改?我去了FETCH_HEAD文件,但除了一个很大的数字之外什么也没有。

n3ipq98p

n3ipq98p1#

默认情况下,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" manual page,特别是“指定范围”部分。另请参见git-log manual page中的示例
您可以自由地自定义git log的输出,因为它支持大量影响它的选项。
请注意,本地分支也可能有匹配的远程分支不包含的提交。为了获得它们的概述,您必须反转传递给git log的修订,原因(希望如此)显而易见。
像往常一样,在开始使用工具之前,理解底层概念是educateyourself的基本要求。请吧

lh80um4z

lh80um4z2#

如果你只是想看看如果你做一个GIT PULL会修改什么文件,可以这样做:

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

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

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

lb3vh1jj3#

试试看

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分支的头。

wgx48brx

wgx48brx4#

我主要使用git log origin/master来查看远程仓库的日志。你可以像git diff master origin/master一样比较master分支和你在远程仓库中的master分支的变化。

相关问题