当我跑步时:
git push origin branchname
到底什么是起源,为什么我必须键入它之前的分支名称?
当我跑步时:
git push origin branchname
到底什么是起源,为什么我必须键入它之前的分支名称?
当前回答
Origin不是远程存储库名称。它实际上是一个本地别名,用来代替远程存储库URL。
它避免了用户在提示推送时必须输入整个远程URL。
默认情况下,这个名称是Git在第一次从远程克隆时设置的。
这个别名不是硬编码的,可以使用以下命令提示符更改:
git remote rename origin mynewalias
请访问http://git-scm.com/docs/git-remote以获得进一步的说明。
其他回答
最好的答案是:
https://www.git-tower.com/learn/git/glossary/origin
在Git中,“origin”是远程存储库的简写名称 项目最初是从。更准确地说,它被用来代替 原始存储库的URL -从而使引用更多 更容易。
Remote(存储库url别名)→origin(上游别名)→master(分支别名);
远程,与工作目录、索引、存储库、 源,本地存储库分支映射到远程存储库分支
我想补充一点,如果你把遥控器看作是你想把代码转移到的电脑以外的地方,这就很容易理解了。
一些很好的例子是:
GitHub 托管应用程序的服务器
所以你当然可以有多个遥控器。一种非常常见的模式是使用GitHub存储代码,并使用服务器托管应用程序(如果它是一个web应用程序)。那么您将有2个遥控器(如果您有其他环境,可能更多)。
试着输入git config -e打开你的git配置
注意:按escape,然后:,然后q然后enter退出
例子
下面是如果你有3个遥控器,你在git配置中可能会看到的内容。在本例中,1个远程(称为“origin”)是GitHub,另一个远程(称为“staging”)是登台服务器,第三个远程(称为“heroku”)是生产服务器。
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[remote "origin"]
url = https://github.com/username/reponame.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[remote "heroku"]
url = https://git.heroku.com/appname.git
fetch = +refs/heads/*:refs/remotes/heroku/*
[remote "staging"]
url = https://git.heroku.com/warm-bedlands-98000.git
fetch = +refs/heads/*:refs/remotes/staging/*
以[remote…]开头的三行字给我们看看我们能按的遥控器。
运行git push origin将推送到'[remote "origin"]'的url,即GitHub
但类似地,我们可以推到另一个远程,例如,'[remote "staging"]',使用git push staging,那么它将推到https://git.heroku.com/warm-bedlands-98000.git。
在上面的例子中,我们可以看到3个使用git remote的遥控器:
git remote
heroku
origin
staging
摘要或起源
遥控器只是互联网上的一个地方,你可能有理由把你的代码发送到那里。GitHub是一个很明显的地方,就像托管应用程序的服务器一样,你也可能有其他位置。git push origin仅仅意味着它将推送到“origin”,这是GitHub选择的默认名称。
至于branchname
Branchname就是你要推到遥控器上的东西。根据git推送帮助文档,branchname参数在技术上是一个refspec,在实际应用中,它是你想要推送的分支。
通过运行:git push——help来阅读更多关于git push的文档
其他答案说origin是远程存储库URL的别名,这并不完全准确。应该注意,以http开头的地址是URL,而以git@开头的地址是URI或通用资源标识符。
所有的url都是uri,但并非所有的uri都是url。
简而言之,当你输入git remote add origin <URI>时,你是在告诉你的本地git,无论何时你使用origin这个词,你实际上指的是你指定的URI。把它想象成一个保存值的变量。
就像变量一样,你可以给它起任何你想要的名字(例如。Github, heroku, destination等)。
origin是远程存储库URL的默认别名。