什么';这两者之间的区别是什么;git merge foo“;及;git合并源/foo";?
这两者之间的区别是什么:什么';这两者之间的区别是什么;git merge foo“;及;git合并源/foo";?,git,Git,这两者之间的区别是什么: (master) ~ $ git merge foo 及 当我做第一个时,它告诉我“已经是最新的”,第二个时,我得到了一堆更新和评论,要保存在我的默认编辑器(vim)中。就像是两个不同的分支。但是如果我做了git branch-r,我有: origin/dev origin/foo origin/master * dev foo master 如果我做了git branch,我有: origin/dev origin/foo ori
(master) ~ $ git merge foo
及
当我做第一个时,它告诉我“已经是最新的”,第二个时,我得到了一堆更新和评论,要保存在我的默认编辑器(vim)中。就像是两个不同的分支。但是如果我做了git branch-r,我有:
origin/dev
origin/foo
origin/master
* dev
foo
master
如果我做了git branch,我有:
origin/dev
origin/foo
origin/master
* dev
foo
master
我对
origin/
前缀有点困惑。当您执行git merge foo
时,您尝试与本地分支合并,因此它已经是最新的
当您执行
git merge origin/foo
时,您尝试从远程分支合并。当您执行git merge foo
时,您尝试与本地分支合并,因此它已经是最新的
执行git merge origin/foo时,尝试从远程分支进行合并。命令:
git merge foo
git merge origin/foo
表示将名为foo
的本地分支合并到当前签出的分支中。所谓“本地”,我指的是foo
分支的本地版本,您可能一直在该分支上工作
命令:
git merge 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
指的是要推送的本地分支。命令:
git merge foo
git merge origin/foo
表示将名为foo
的本地分支合并到当前签出的分支中。所谓“本地”,我指的是foo
分支的本地版本,您可能一直在该分支上工作
命令:
git merge 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
指的是您要推送的本地分支。Git merge origin/foo
将远程分支合并到您当前的本地活动分支中。
通常的工作流程是将本地分支合并到本地分支中。以下各点也是如此:
git checkout foo
-切换到本地foo
分支
git-pull-origin
-如果foo
分支跟踪远程origin/foo
分支-它将把所有远程更新拉到本地分支
git签出主机
-切换到本地主机
git merge foo
-最后,您将foo
分支合并到master
git merge origin/foo
将远程分支合并到您当前的本地活动分支。
通常的工作流程是将本地分支合并到本地分支中。以下各点也是如此:
git checkout foo
-切换到本地foo
分支
git-pull-origin
-如果foo
分支跟踪远程origin/foo
分支-它将把所有远程更新拉到本地分支
git签出主机
-切换到本地主机
git merge foo
-最后您将foo
分支合并到master
origin
是远程repo的通用名称,您可以在本地或远程repo中拥有分支。foo是您可以工作的本地分支,origin/foo是远程跟踪分支(在origin上跟踪foo).origin/foo
-通常是远程分支;而foo
-是当地的分支机构。这能回答你的问题吗?值得一提的是,所有的git merge
操作都与提交一起工作(通过散列ID找到)。尝试运行git rev parse foo
,然后运行git rev parse origin/foo
;这可能会给您带来启发。origin
是远程回购的通用名称,您可以在本地或远程回购中拥有分支机构。foo是您可以工作的本地分支机构,origin/foo是远程跟踪分支机构(在origin上跟踪foo)。origin/foo
-通常是远程分支机构;而foo
-是当地的分支机构。这能回答你的问题吗?值得一提的是,所有的git merge
操作都与提交一起工作(通过散列ID找到)。尝试运行git rev parse foo
,然后运行git rev parse origin/foo
;这可能会提供启发。“foo和origin/foo可能指向同一个分支”不,它们是不同的分支。他们