Git中的“起源”是什么?


What is “origin” in Git?

当我跑步时:

1
git push origin branchname

origin是什么?为什么我必须在分支名称之前输入它?


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

通过做

1
git push origin branchname

您的意思是推送到origin存储库。不需要将远程存储库命名为origin:事实上,同一个存储库对于另一个开发人员可能有不同的别名。

远程只是存储库URL的别名。您可以使用

1
git remote -v

push命令中,您可以使用远程设备,也可以直接使用URL。使用URL的示例:

1
git push [email protected]:git/git.git master


origin不是远程存储库名称。它更像是一个本地别名集,作为密钥来代替远程存储库URL。

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

这个名称是默认设置的,并且在第一次从远程克隆时由git进行约定。

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

1
git remote rename origin mynewalias

请访问http://git-scm.com/docs/git-remote了解进一步的说明。


Git有"远程"的概念,它只是指向存储库其他副本的URL。克隆另一个存储库时,git会自动创建一个名为"origin"的远程存储库并指向它。

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


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


简单!"当您运行这样的命令时,"origin"就是您所昵称的远程存储库:

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

从那时起,Git就知道"origin"指向特定的存储库(在本例中是GitHub存储库)。你可以把它命名为"github"或"repo"或你想要的任何东西。


我也对这件事感到困惑,下面是我学到的。

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

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

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

更多信息可以从这个问题中找到:git分支:master vs.origin/master vs.remotes/origin/master


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


最好的答案是:

https://www.git-tower.com/learn/git/glossary/origin

In Git,"origin" is a shorthand name for the remote repository that a
project was originally cloned from. More precisely, it is used instead
of that original repository's URL - and thereby makes referencing much
easier.


另一个答案是,origin是远程存储库的URL的别名,这并不完全准确。需要注意的是,以http开头的地址是url,以git@开头的地址是uri或通用资源标识符。

所有URL都是URI,但并非所有URI都是URL。

简而言之,当你输入git remote add origin 时,你告诉你的本地git,每当你使用origin这个词时,你实际上是指你指定的URI。把它想象成一个保存值的变量。

就像变量一样,你可以随意命名它(如githubherokudestination等)。


来自https://www.git-tower.com/learn/git/glossary/origin:

In Git,"origin" is a shorthand name for the remote repository that a project was originally cloned from. More precisely, it is used instead of that original repository's URL - and thereby makes referencing much easier.

Note that origin is by no means a"magical" name, but just a standard convention. Although it makes sense to leave this convention untouched, you could perfectly rename it without losing any functionality.

In the following example, the URL parameter to the"clone" command becomes the"origin" for the cloned local repository:

1
git clone https://github.com/gittower/git-crash-course.git