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