"git push origin master"中的“origin”是什么意思?

110

当我运行:

git push origin master

在这个上下文中,origin 的含义是什么?


7
Git教程中提到:“当您在一个小而紧密的团队中工作时,经常与同一存储库进行交互是很常见的。通过定义远程存储库的简称,您可以使其更加容易。”如果您不这样做,默认情况下将使用origin。 - sakisk
8个回答

94

Git有一个名为“远程仓库”的概念 - 这些就像存储库的易记名称,因此您不必每次引用另一个存储库时都使用其完整URL。

origin只是像其他任何一样的远程仓库,但您会经常看到它,因为当您首次克隆存储库时,git clone将默认设置一个名为origin的远程仓库来引用您克隆的URL。

如果您执行git remote -v,那么它将向您显示在本地仓库中设置的所有远程仓库以及它们所引用的URL。 (您会发现它比我上面说的要复杂一些,因为远程仓库可以引用不同的推送和提取URL,但您可能不需要担心那个。 :))


git remote add origin是什么意思?为什么要添加origin? stackoverflow.com/a/8248542/719689 - AlxVallejo
3
如果您是通过 git clone 命令初始化存储库,那么您可以自己添加 origin 远程。 - Mark Longair
@MarkLongair 在代码结尾处使用 master 是做什么的? - Kasun Siyambalapitiya

79

origin 是你从中克隆的远程 git 仓库的默认名称。查看你的源代码中的 .git/refs/remotes/origin/*.git/config,以查看 git 如何知道它。


7
我会说“从你的代码库克隆”而不是“从你的源代码中检出” - 后者是集中式版本控制系统的保留短语,对分布式版本控制系统的初学者容易产生一些误导。 - Cascabel
1
关于命令git remote add origin怎么样?为什么要添加一个origin?http://stackoverflow.com/a/8248542/719689 - AlxVallejo
7
git remote add origin 的意思是添加一个名为 origin 的远程代码库,它没有特殊的技术含义,只是一种广泛使用的默认名称,用于表示原始的远程代码库。如果喜欢,也可以使用 foobar 来代替 origin - skuro
1
@AlxVallejo 这通常是在你没有从该存储库克隆,而是在本地创建了存储库并在其他地方创建了 origin 作为远程存储库时使用的。 - Matt
4
@KasunSiyambalapitiya 是分支名称。使用 git push origin master 命令,你告诉Git将当前检出的本地分支(即来自你的文件系统)中的所有提交推送到名为 origin 的远程repo的其远程分支 master 上。 - skuro
显示剩余3条评论

41

源(origin)是您最初获得代码的地方。


3
对我而言,这不是一个笑话,而是一个记忆词法规则来记住“起源”的含义。顺便说一下,这是我喜欢的方法。+1 - MiGU
1
虽然我喜欢你的爸爸笑话,但它并不一定是真实的。我可以在没有远程知识的情况下创建一个新的本地存储库并提交到其中。稍后我可以创建一个名为 origin 的远程,并将本地的所有提交推送到该远程。Origin 不必是存储库的原始来源。 - Rob Bell

4

这将会是有帮助的。

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

在Git中,“origin”是一个项目最初从中克隆的远程存储库的简写名称。更确切地说,它代替了原始存储库的URL,从而使引用变得更加容易。

请注意,origin绝不是一个“神奇”的名称,而只是一个标准约定。虽然保留这个约定很有意义,但您完全可以重新命名它而不会失去任何功能。

在下面的示例中,“clone”命令的URL参数成为克隆本地存储库的“origin”:

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


2

当您第一次克隆存储库并指向创建克隆的URL时,origin是由git本身创建的远程。

例如: origin git@github.com:/PROJECT_U


0
“Origin”是你想要发布提交记录的远程代码库的名称。按照惯例,默认的远程代码库叫做“origin”,但你可以同时使用多个不同名称的远程代码库。

0
简单来说,让我们看看源代码是从哪里来的。 当你第一次从远程服务器或云(如GitHub)克隆你的repo时,你可以使用HTTPS、SSH或GitHub CLI链接进行克隆。在我的例子中,我使用的是URL。
git clone https://github.com/****/my-first-repo.git

克隆我的项目。因此,我的项目源代码位于GitHub上,因此下面的URL链接指向我的GitHub远程存储库是源

https://github.com/****/my-first-repo.git

如果我在bash CLI中输入git remote -v,我会得到与下面相同的URL

$ git remote -v
origin  https://github.com/****/my-first-repo.git (fetch)
origin  https://github.com/****/my-first-repo.git (push)

这个输出确认原始来源是上述的URL。

现在,如果你想要将你的主分支(现在称为main)推送到源代码库,而不是使用

git push https://github.com/****/my-first-repo.git master

它非常简单明了,易于使用。

git push origin master

希望这能帮助有需要的人理解这个概念。

0

简单来说:

git push origin master
  1. git: 注意电脑,以下命令是针对git库的,请确保已经安装了git。
  2. push: 我要把我的代码推送到这个Github仓库。
  3. origin: 这是我在github上保存代码的默认代号。(你知道当你执行git init或者git clone时,它会设置一个git存储单元,而这个存储单元在github上有一个默认的标识符叫做'origin'。当你推送代码时,所有的代码都会被放入这个叫做origin的存储单元中。
  4. master: 在我的名为origin的仓库中,获取主分支,也就是master分支。

总结一下: 嗨,机器,使用github工具将我正在开发的代码放到线上。将其放入这个项目所属的仓库中,在github上创建的仓库(称为origin),并存储在我指定的分支中,本例中为'master'。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接