我读到这一点,在执行git fetch
之后,您的本地仓库拥有原始仓库的所有提交,但是它们尚未集成到克隆存储库的本地分支中#&#34} 34。
这意味着什么/暗示?
我是否需要签出我的分支机构以将更改下载到我的本地工作副本中?或者它意味着别的什么?提前谢谢!
答案 0 :(得分:1)
git fetch
更新远程跟踪分支的本地副本。如果您配置的远程是origin
(通常是这种情况),则git fetch
将更新origin/master
以及远程存在的任何其他分支。这些分支指向远程分支当前所在的提交。
例如,考虑调用git log --pretty=oneline --abbrev-commit --graph --decorate --all
:
* 46960d3 (origin/master) Commit 5
* 8b050c8 Commit 4
* cee210b (HEAD, master) Commit 3
* 075aafe Commit 2
* 69ade0a Commit 1
在这种情况下,git fetch
检索了两个新提交(4和5),但本地master
分支仍然落后。
要纠正这种情况,必须检查master
是否尚未签出(git checkout master
),然后合并新的提交(git merge origin/master
)。
git pull
实际上是“从当前分支正在跟踪的远程提取,然后与提取的提示提交合并”的同义词。在这种情况下,它等同于git fetch origin && git merge origin/master
。
答案 1 :(得分:0)
Git有两个命令可以从远程存储库更新自己。混帐 fetch将使您与另一个repo同步,下拉任何数据 您没有在本地,并为每个人提供书签 您同步时该遥控器上的分支。这些被称为 “远程分支”和除Git之外的本地分支相同 不允许你检查它们 - 但是,你可以合并 他们,将他们分散到其他分支,在他们上运行历史记录,等等 同步后在本地执行所有这些操作。
第二个命令,用于从远程服务器获取新数据 是git pull。这个命令基本上会立即运行git fetch 然后是跟踪的遥控器上的分支的git合并 通过您当前所在的任何分支。运行提取和合并 命令分别涉及较少的魔法和较少的问题,但如果你 像拉的想法,你可以在更详细的阅读 官方文件。