【问题标题】:Where to see the changes with "git fetch"?在哪里可以看到“git fetch”的变化?
【发布时间】:2020-07-30 21:07:34
【问题描述】:

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

我的研究告诉我,它可以让您查看本地存储库是否与远程存储库保持同步,而无需更改本地存储库中的代码。但是,输入命令后我可以在哪里查看更改?

一个例子可能是我的同事提交了一个更改,然后我键入命令来查看我的本地存储库是否是最新的,它将显示什么以及将显示在哪里?

【问题讨论】:

  • git fetch 之后,您将在更改分支或使用例如 git 时看到来自 git 的消息。 git status 如果您的分支与它正在跟踪的远程不同。例如:Your branch is behind 'origin/typescript' by 1 commit, and can be fast-forwarded. 就是我现在看到的。不清楚这是否是您要找的,我建议您尝试一下。
  • 在这里查看长答案:stackoverflow.com/questions/47675225/… 您可以使用git fetch -v 来查看更多命令输出。

标签: git git-fetch


【解决方案1】:

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

【讨论】:

  • 您还可以从master -> ... 行剪切并粘贴两个哈希ID:例如git log 4f3d3b431..d82301acb。或者,git diff 4f3d3b431..d82301acb 会告诉你这里发生了什么变化。 @SurajCheema 应该注意,这就是刚才 fetched 的内容;随着时间的推移多次 git fetch 操作,没有干预您自己的分支名称的更新,通常会导致 git log master..upstream/master 显示 更多git log <hash1>..<hash2> 从最近的提取。
  • 谢谢!这是一个非常有帮助的答案。
【解决方案2】:

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

git diff master origin/master

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

【讨论】:

    【解决方案3】:

    这肯定行得通,

    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
    

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

    【讨论】:

      猜你喜欢
      • 2012-05-27
      • 2015-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-29
      • 2018-05-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多