什么';这两者之间的区别是什么;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可能指向同一个分支”不,它们是不同的分支。他们