当我跑步时:

git push origin branchname

到底什么是起源,为什么我必须键入它之前的分支名称?


当前回答

其他答案说origin是远程存储库URL的别名,这并不完全准确。应该注意,以http开头的地址是URL,而以git@开头的地址是URI或通用资源标识符。

所有的url都是uri,但并非所有的uri都是url。

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

就像变量一样,你可以给它起任何你想要的名字(例如。Github, heroku, destination等)。

其他回答

我也对此感到困惑,以下是我所学到的。

当你克隆一个存储库,例如从GitHub:

origin是从中克隆存储库的URL的别名。注意,您可以更改这个别名。 在远程存储库中有一个主分支(以起源为别名)。在本地还创建了另一个主分支。

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

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

你可以通过输入git remote show origin查看更多关于远程的信息。

Origin是系统上某个特定远程存储库的别名。它实际上不是存储库的属性。

通过做

git push origin branchname

你说的是推到原始存储库。不需要命名远程存储库的起源:事实上,同一个存储库对于另一个开发人员可以有不同的别名。

远程只是存储存储库URL的别名。通过使用,可以查看每个远程的URL

git remote -v

在push命令中,您可以使用远程,也可以直接使用URL。一个使用URL的例子:

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

Remote(存储库url别名)→origin(上游别名)→master(分支别名);

远程,与工作目录、索引、存储库、 源,本地存储库分支映射到远程存储库分支

最好的答案是:

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

在Git中,“origin”是远程存储库的简写名称 项目最初是从。更准确地说,它被用来代替 原始存储库的URL -从而使引用更多 更容易。