我做了git fetch
,是因为我不想在git pull
之后失去某些信息。在git fetch
之后,我应该在哪里阅读新的修改内容? 我查看了FETCH_HEAD
文件,但里面只有一个大数字,没有其他内容。
git fetch origin
会获取名为“origin”的远程仓库中的所有内容,并更新(或创建)所谓的“远程跟踪分支”。比如,对于名为“origin”的远程仓库,其中包含名为“master”和“feature”的分支,运行git fetch origin
将导致更新(或创建,如果它们不存在)名为“origin/master”和“origin/feature”的远程跟踪分支。你可以在git branch -a
(注意是“-a”)的输出中看到它们。git log origin/master ^master
这意味着“所有从‘origin/master’可达的提交,但不包括从‘master’可达的提交”,或者说。git log master..origin/master
具有相同含义,请参见“gitrevisions”手册页面了解更多信息,特别是“指定范围”部分。另请参见git-log手册页中的示例。
您可以自由地自定义git log
的输出,因为它支持许多影响其选项。
请注意,您本地的分支可能也有提交,但匹配的远程分支不包含(尚未)。出于(希望)明显的原因,要获取它们的概述,您必须颠倒传递给git log
的修订版本。
master
分支上添加了提交记录,而这些提交记录并非来自于他们的master
分支(即你已经更新的origin/master
分支),那么它将会产生不同的结果。这样做并没有错,但它将无法显示出*他们在你的master
分支中拥有的提交记录,而git log
命令则恰好能够做到这一点。 - torek如果您只想查看在执行GIT PULL后将被修改的文件,请执行以下操作:
git fetch && git diff HEAD @{u} --name-only
如果您想查看当前版本和即将到来的版本之间的所有差异,包括未提交的本地修改,请输入以下内容:
git fetch && git diff @{u} --name-only
尝试一下
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 log --all --oneline --graph
。 - andrejs82我通常使用git log origin/master
来查看远程仓库的日志。
你可以像这样比较更改:git diff master origin/master
,它将比较主分支与远程仓库中你的主分支的更改。
gitk
?如果可以,运行gitk --all
可以查看本地计算机上所有分支的当前状态,包括通过fetch更新的分支。 - creemamagit show object
命令,其中 object 是一个大的哈希值... - Prince John Wesley