如何查看git fetch的结果?

时间:2017-12-06 13:15:26

标签: git git-fetch

我从远程存储库中获取分支。我如何才能看到它成功运作?我希望在这次获取之后,我应该在本地拥有一个(副本)远程分支但我找不到它(既不是git branch也不是git branch -r也不是git status)。对我来说,似乎什么也没发生。

3 个答案:

答案 0 :(得分:0)

After you fetched, to see what remote "master" has compared to your local "master", you ask Git to show you exactly this:

git log origin/master ^master

which means «all commits reachable from "origin/master" which do not include commits reachable from "master"» or, alternatively

git log master..origin/master

also, git diff master origin/master seems to address the question very simply I think.

答案 1 :(得分:0)

我相信您打算做GIT PULL,而不是GIT FETCH。

或者您打算做GIT CLONE。

GIT FETCH不会更改当前分支中的任何文件,只会更新您的存储库。

答案 2 :(得分:0)

首先,要确保获得输出,无论是在远程端上实际发现了新的分支还是提交,都可以进行详细的访存:

git fetch -v

然后任何未更新的远程分支都将显示为(例如)

= [up to date]       my_awesome_branch      -> origin/my_awesome_branch
= [up to date]       yet_another_branch     -> origin/yet_another_branch

但是除此之外,即使在成功获取数据并且现在在本地存储库中有了新的引用之后,请注意,目前,只有远程跟踪分支会被更新,以反映其对应的状态。远端。

但是,您的本地分支仍处于提取操作之前的状态。

使用此提取输出示例:

$ git fetch
remote: Counting objects: 143, done.
remote: Compressing objects: 100% (143/143), done.
remote: Total 143 (delta 118), reused 0 (delta 0)
Receiving objects: 100% (143/143), 16.54 KiB | 1.65 MiB/s, done.
Resolving deltas: 100% (118/118), completed with 53 local objects.
From ssh://<repoNameRedacted>
 * [new branch]          feature-2541 -> origin/feature-2541
   433c28824..9924cc527  bugfix-9891 -> origin/bugfix-9891

如果您现在要处理bugfix-9891并获得最新的工作,那就做

git checkout bugfix-9891

...会将您的HEAD指向该本地分支,允许您对其进行处理,但是即使您是预先获取它们的,您也会拥有最新的提交。它们在远程跟踪origin/bugfix-9891中,但仍不在您的本地版本bugfix-9891中。

要真正合并这些更改并在其中进行工作,您必须

git checkout bugfix/9891
git merge origin/bugfix/9891

我们还要注意,有一种非常普遍(尽管没有必要)的方法来自动化[获取+与远程合并]过程,即:

git checkout bugfix/9891
git pull