当我跑步时:
git push origin branchname
到底是什么origin
,为什么我必须在分支名称之前键入它?
当我跑步时:
git push origin branchname
到底是什么origin
,为什么我必须在分支名称之前键入它?
Answers:
origin
是系统上特定远程存储库的别名 。它实际上不是该存储库的属性。
通过做
git push origin branchname
您是说要推送到origin
存储库。无需命名远程存储库origin
:实际上,同一存储库可以为另一个开发人员使用不同的别名。
远程只是存储库URL 的别名。您可以通过使用以下命令查看每个遥控器属于哪个URL
git remote -v
在push
命令中,您可以使用遥控器,也可以直接使用URL。使用URL的示例:
git push git@github.com:git/git.git master
git push
您可以看到它首先检查了该存储库的配置(可以使用进行检查git config --list
)以找到名为的密钥branch.<branchname>.remote
。如果未设置,则“默认为原点” -git-scm.com/docs/git-push
origin
是不是远程仓库名。而是将本地别名设置为代替远程存储库URL的键。
这样可以避免用户在提示推送时不得不键入整个远程URL。
默认情况下,此名称是默认设置的,并且是第一次从远程克隆时,Git的约定。
该别名名称不是硬编码的,可以使用以下命令提示符进行更改:
git remote rename origin mynewalias
请查看http://git-scm.com/docs/git-remote以获得进一步的说明。
Git具有“远程”的概念,它只是存储库其他副本的URL。当您克隆另一个存储库时,Git会自动创建一个名为“ origin”的远程对象并指向它。
您可以通过键入来查看有关遥控器的更多信息git remote show origin
。
git remote show origin
为什么不简单地代替git show origin
?一定有原因,这是什么?谢谢。
origin
是远程存储库URL 的默认别名。
我对此也感到困惑,以下是我所学到的。
当您克隆存储库时(例如从GitHub):
origin
是从中克隆存储库的URL的别名。请注意,您可以更改此别名。
master
远程存储库中有一个分支(由别名origin
)。master
在本地还创建了另一个分支。
可以从以下SO问题中找到更多信息:Git分支:主控与源/主控与远程/源/主控
最好的答案在这里:
https://www.git-tower.com/learn/git/glossary/origin
在Git中,“ origin”是最初从中克隆项目的远程存储库的简称。更准确地说,它代替了原始存储库的URL,从而使引用更加容易。
从https://www.git-tower.com/learn/git/glossary/origin:
在Git中,“ origin”是最初从中克隆项目的远程存储库的简称。更准确地说,它代替了原始存储库的URL,从而使引用更加容易。
请注意,起源绝不是“魔术”名称,而只是标准约定。尽管保留该约定是有意义的,但是您可以完美地重命名它而不会丢失任何功能。
在以下示例中,“ clone”命令的URL参数成为克隆的本地存储库的“来源”:
git clone https://github.com/gittower/git-crash-course.git