【发布时间】:2021-03-19 16:16:52
【问题描述】:
两者有什么区别:
(master) ~ $ git merge foo
和
(master) ~ $ git merge origin/foo
当我做第一个时,它告诉我“已经是最新的”,第二个时,我得到了一堆更新和评论,以保存在我的默认编辑器 (vim) 中。就像它是两个不同的分支一样。但如果我这样做git branch -r,我有:
origin/dev
origin/foo
origin/master
如果我选择git branch,我有:
* dev
foo
master
我对@987654328@ 前缀有点困惑。
【问题讨论】:
-
origin是远程仓库的通用名称,您可以在本地或远程仓库中有分支。 -
foo 是您可以工作的本地,origin/foo 是远程跟踪分支(在源上跟踪 foo)。
-
origin/foo- 通常是远程分支;foo- 是本地分支。 -
值得一提的是,所有
git merge操作都使用commit(通过其哈希ID 找到)。尝试运行git rev-parse foo,然后运行git rev-parse origin/foo;这可能会提供启发。
标签: git