我不想在git pull之后丢失一些信息,所以我之前做了git fetch。在哪里可以读取git fetch之后的新修改?我去了FETCH_HEAD文件,但除了一个很大的数字之外什么也没有。
git pull
git fetch
FETCH_HEAD
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 fetch origin
git fetch remote
git branch -a
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的基本要求。请吧
git log
lh80um4z2#
如果你只是想看看如果你做一个GIT PULL会修改什么文件,可以这样做:
git fetch && git diff HEAD @{u} --name-only
如果要查看当前版本与传入版本之间的所有差异,包括未提交的本地修改,请键入以下内容:
git fetch && git diff @{u} --name-only
lb3vh1jj3#
试试看
git log --oneline --decorate origin/master
这将为您提供来自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分支的头。
(master)
(origin/master)
wgx48brx4#
我主要使用git log origin/master来查看远程仓库的日志。你可以像git diff master origin/master一样比较master分支和你在远程仓库中的master分支的变化。
git log origin/master
git diff master origin/master
4条答案
按热度按时间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向你展示:
这意味着“所有可从“origin/master”获得的提交,其不包括可从“master”获得的提交”,或者
意思是一样的更多信息请参见"gitrevisions" manual page,特别是“指定范围”部分。另请参见git-log manual page中的示例
您可以自由地自定义
git log
的输出,因为它支持大量影响它的选项。请注意,本地分支也可能有匹配的远程分支不包含的提交。为了获得它们的概述,您必须反转传递给
git log
的修订,原因(希望如此)显而易见。像往常一样,在开始使用工具之前,理解底层概念是educateyourself的基本要求。请吧
lh80um4z2#
如果你只是想看看如果你做一个GIT PULL会修改什么文件,可以这样做:
如果要查看当前版本与传入版本之间的所有差异,包括未提交的本地修改,请键入以下内容:
lb3vh1jj3#
试试看
这将为您提供来自
origin
远程分支的master
头的更改日志(您可以根据需要替换任何其他远程分支)。你会得到一个类似这样的输出:标记为
(master)
的提交是本地master
分支的头。标记为(origin/master)
的提交是远程的master
分支的头。wgx48brx4#
我主要使用
git log origin/master
来查看远程仓库的日志。你可以像git diff master origin/master
一样比较master分支和你在远程仓库中的master分支的变化。