有什么区别:
(master) ~ $ git merge foo
和
(master) ~ $ git merge origin/foo
当我做第一个时,它告诉我“已经是最新的”,第二个时,我得到了一堆更新和评论以保存在我的默认编辑器 (vim) 中。就像它是两个不同的分支。但如果我这样做git branch -r
,我有:
origin/dev
origin/foo
origin/master
如果我这样做git branch
,我有:
* dev
foo
master
我对origin/
前缀有点困惑。
命令:
git merge foo
说要合并到当前签出的分支中,本地分支称为foo
。“本地”是指foo
您可能一直在其上工作的分支的本地版本。
命令:
git merge origin/foo
说要合并到当前签出的分支中,名为 的远程跟踪分支origin/foo
。foo
并且origin/foo
可能指向同一个提交,也可能不是。例如,如果您最近提取过数据,那么它可能(甚至可能)origin/foo
比foo
您机器上的本地数据更新。
顺便说一下,如果您想知道远程跟踪分支的用途是什么,这些分支是您机器上的本地分支,它们作为存储库中真正远程分支的代理存在。Git 操作主要在本地运行,这种分布式支持是 Git 强大的原因之一。
有关附加信息,假设您想通过以下方式将本地foo
分支推送到远程:
git push origin foo
在这种情况下,origin
实际上是指远程 Git 存储库(例如 GitHub 或 Bitbucket 之类的东西),并且foo
指的是您要推送的本地分支。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句