2012-03-02 58 views
392

当我运行:什么是Git中的“origin”?

git push origin branchname 

到底是什么origin,为什么我有分支名称前键入?

+41

“origin”是要发布提交的远程存储库的名称。按照惯例,默认的远程仓库被称为“origin”,但您可以同时使用多个远程(具有不同的名称)。更多信息在这里(例如):http://gitref.org/remotes/ – 2012-03-02 07:25:37

+1

还要注意,起源是一个“上游”回购:请参阅http://stackoverflow.com/questions/2739376/definition-of-downstream-and -upstream/2749166#2749166 – VonC 2012-03-02 07:54:31

+1

[git push origin master'中'origin'的含义可能重复](https://stackoverflow.com/questions/5270760/whats-the-meaning-of-origin-in -git-push-origin-master) – nawfal 2017-06-07 10:46:35

回答

386

origin是你的系统上别名特定远程仓库。它实际上不是该存储库的属性。

这样做

git push origin branchname 

你说要推到origin库。没有要求命名远程存储库origin:实际上,同一个存储库可以为另一个开发人员使用不同的别名。

遥控器只是一个别名存储库的URL。你可以看到通过使用

git remote -v 

push命令所属的URL给每个遥控器,就可以使用遥控器你可以简单地直接使用URL。使用该URL的一个例子:

git push [email protected]:git/git.git master 
+34

澄清(查看一些其他答案后);名称'origin'是您系统上的别名*,用于其他地方存在的特定存储库。它实际上不是该存储库的属性。同一个存储库可能被另一个开发者赋予'origin'和别的'flub'别名。 – 2014-09-07 05:06:51

+0

单个遥控器可以作为多个其他遥控器的别名吗?如果我想让一台遥控器推向多个其他遥控器会怎样?例如,推到主要的回购,并推到备份回购?在某些情况下,这是否合理?编辑:这里有[几个解决方案](https://stackoverflow.com/questions/849308/pull-push-from-multiple-remote-locations)。 – Yankee 2017-07-21 07:07:14

58

Git有“遥控器”,这是简单的网址,您的存储库的其他副本的概念。当你克隆另一个仓库时,Git会自动创建一个名为“origin”的远程并指向它。

通过键入git remote show origin可以查看有关遥控器的更多信息。

+0

git命令对初学者来说非常混乱。我想这跟这个版本控制系统的历史有关。所以,问题:而不是'git远程显示源',为什么不简单'git显示源'?必须有一个原因,它是什么?谢谢。 – Stack0verflow 2015-08-19 13:26:40

+3

@ StackOverflow:这可能是一个更好的问题,所以如果你好奇的话,人们可以进行研究。 'git show'已经是另外一个显示提交的命令了,从技术上讲,除了远程调用origin外,没有任何东西可以阻止你创建一个叫'origin'的分支... – 2015-08-20 16:43:39

30

origin是默认别名到远程存储库的URL。

92

origin而不是远程存储库名称。这是一个本地别名设置为代替远程存储库URL的密钥。

它避免了用户在提示推送时不得不键入整个远程URL。

默认情况下设置此名称,并且在首次从远程克隆时由Git进行约定。

此别名不硬编码的,可以用下面的命令提示符下进行更改:

git remote rename origin mynewalias 

看看http://git-scm.com/docs/git-remote为进一步澄清。

16

我也被这个困惑,下面是我所了解到的。

当你从GitHub克隆库,例如:

  • origin是从中克隆库中的URL的别名。请注意,您可以更改此别名。

  • 在远程存储库中有一个master分支(别名为origin)。还有另一个master分支在本地创建。

进一步的信息可以从该SO问题上找到:Git branching: master vs. origin/master vs. remotes/origin/master

9

当克隆与git clone存储库,它会自动创建一个名为origin指回克隆库的远程连接。这对开发人员创建中央存储库的本地副本很有用,因为它提供了一种简单的方法来提取上游更改或发布本地提交。这种行为也是大多数基于Git的项目调用其中央资源库的原因。

8

简单! “原产地”正是你的绰号远程仓库时,你跑了这样的命令:

git remote add origin [email protected]:USERNAME/REPOSITORY-NAME.git 

从此Git的都知道,“原产地”指向特定的存储库(在这种情况下的GitHub库)。你可以将它命名为“github”或“repo”或任何你想要的。

相关问题