"git fetch" 命令的变更在哪里查看?

3

我只是好奇如何在输入“git fetch”后查看更改。

我的研究告诉我,这将允许您查看本地存储库是否与远程存储库保持同步,而无需更改本地存储库中的代码。然而,在输入该命令后,我将能够在哪里查看更改?

例如,我的同事提交了更改,我输入命令查看本地存储库是否为最新状态,它会显示什么并且在哪里显示?


1
在执行 git fetch 后,当你切换分支或使用 git status 命令时,你会看到来自 git 的消息,如果你的分支与远程跟踪的分支不同,就会出现这种情况。例如:我现在看到的是 Your branch is behind 'origin/typescript' by 1 commit, and can be fast-forwarded.。不清楚这是否符合你的需求,建议你试一下。 - jonrsharpe
请查看这里的详细答案:https://stackoverflow.com/questions/47675225/how-to-see-a-result-of-git-fetch 您可以使用 git fetch -v 命令来查看更多输出结果。 - YesThatIsMyName
3个回答

4

git fetch 从远程仓库获取变更并将其存储在本地。每当您检出跟踪分支时,您应该会看到一个关于它如何与其所跟踪的分支不同的消息。例如:

mureinik@computer ~/src/git/commons-lang [somebranch] $ git fetch upstream
remote: Enumerating objects: 763, done.
remote: Counting objects: 100% (763/763), done.
remote: Compressing objects: 100% (31/31), done.
remote: Total 1881 (delta 721), reused 747 (delta 713), pack-reused 1118
Receiving objects: 100% (1881/1881), 717.42 KiB | 758.00 KiB/s, done.
Resolving deltas: 100% (936/936), completed with 236 local objects.
From https://github.com/apache/commons-lang
   4f3d3b431..d82301acb  master     -> upstream/master
   09043bfa6..e389ce1ed  release    -> upstream/release
 * [new tag]             commons-lang-3.10-RC1 -> commons-lang-3.10-RC1
 * [new tag]             rel/commons-lang-3.10 -> rel/commons-lang-3.10
mureinik@computer ~/src/git/commons-lang [somebranch] $ git checkout master
Your branch is behind 'upstream/master' by 147 commits, and can be fast-forwarded.
  (use "git pull" to update your local branch)

你也可以通过git log命令显式地查看差异:

mureinik@computer ~/src/git/commons-lang [master] $ git log master..upstream/master

2
你也可以复制粘贴两个哈希 ID:例如 git log 4f3d3b431..d82301acb,从 master -> ... 行。或者,git diff 4f3d3b431..d82301acb 将向您展示这里发生了什么变化。@SurajCheema 应该注意,这就是刚刚 获取 的内容;随着时间的推移进行多次 git fetch 操作,没有更新自己的分支名称,通常会导致 git log master..upstream/master 显示比最近一次获取的 git log <hash1>..<hash2> 更多的内容。 - torek
谢谢!那个回答非常有帮助。 - Suraj Cheema

1
如果远程被称为“origin”(您可以通过 git remote -v 查看),您可以使用“origin”master分支检查您的master分支的更改。
git diff master origin/master

您可以使用所有您想要的命令与远程提交一起使用:log(您可以查看历史记录并使用--decorate突出显示您的提交,如果您的提交在远程历史记录中),show,...

0

这肯定会起作用的,

git diff master origin/master

如果你只想查看在进行GIT PULL操作时哪些文件会被修改,可以执行以下命令:

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

如果您想查看当前版本和即将到来的版本之间的所有差异,包括未提交的本地修改,请使用以下命令:
git fetch && git diff @{u} --name-only

而且,

git log --all --oneline --graph

将为您提供所有分支的更改日志,例如输出 -

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接