什么是Git的“起源”?

当我运行:

git push origin branchname 

究竟是什么origin ,为什么我必须在分支名称之前input它?

origin您的系统上特定远程存储库的别名 。 这实际上不是该存储库的一个属性。

通过做

 git push origin branchname 

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

远程是一个简单的存储知识库url的别名 。 您可以通过使用来查看每个遥控器的url

 git remote -v 

push命令中,您可以使用遥控器,或者直接使用url 。 一个使用url的例子

 git push git@github.com:git/git.git master 

origin 不是远程存储库名称。 它是一个本地别名集,代替远程仓库URL。

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

这个名字是默认设置的,对于第一次从远程进行克隆时,通过git来定义。

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

 git remote rename origin mynewalias 

请查看http://git-scm.com/docs/git-remote以获得进一步说明。;

Git有一个“远程”的概念,它只是到你的仓库其他副本的URL。 当你克隆另一个仓库时,git会自动创build一个名为“origin”的远程并指向它。

您可以通过inputgit remote show origin来查看有关遥控器的更多信息

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

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

例如,从GitHub克隆存储库时:

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

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

更多的信息可以从这个SO问题中find: Git分支:主控与起源/主控与遥控/起源/主控

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

简单! “origin”就是你在运行如下代码的时候对你的远程仓库昵称的东西:

 git remote add origin git@github.com:USERNAME/REPOSITORY-NAME.git 

这是一个GitHub存储库的例子。 从此,git知道“origin”指向特定的存储库。 你可以把它命名为“github”或“repo”或任何你想要的。