在git lingo,是origin
和remote
同样的事情?或者确实origin
是指本地目录?
在以下情况中git push -u origin master
:以下哪项解释是正确的?
感谢任何澄清!
我的问题的答案为我澄清了两个问题:
origin
指的是远程仓库,而不是远程仓库的本地克隆副本.当读取的origin
是别名remote
并且在时间创建时,这一点并不清楚git clone
origin
指的是远程仓库,git push -u origin master
因为仓库的本地副本是隐含的并且"很少被引用".Del*_*ics 62
在git中,lingo origin
只是最初克隆了repo的远程的默认名称.它可能同样被称为source
或remote1
或只remote
.
请记住,这git
是一个点对点的分布式系统,而不是具有客户端/服务器,主/从,父/子关系的任何内置概念的系统(尽管在特定场景中用户可能强加这些关系) .
所有遥控器都是平等的. origin
简单地(并且字面上)是这些等于(克隆回购)中的第一个.:)
正如Jan在评论中指出的那样,与每个遥控器相关的名称是为了您的方便.如果您发现这origin
对您不起作用,那么您可以更改它.
至于您对该push
语句的解释,您的第一个是最接近正确的,但是写入的push命令会将本地master
分支推送到master
由(本地配置的)名称标识的远程分支origin
.
如果master
遥控器中没有分支,则将创建一个分支.
您很少(如果有的话)明确地引用"本地"仓库,因为您的操作是在回购的上下文中执行的.
Seb*_*icz 14
不,他们并不是一回事.
remote
in git
-speak,指任何远程存储库,例如您的GitHub或其他git
服务器.
origin
按惯例,是默认的远程名称git
.当你这样做时git clone <url>
,<url>
会自动添加到你名下的本地仓库origin
.当然,您可以使用不同的名称添加其他遥控器git remote add
.
当你这样做时git push -u origin master
,它意味着"将所有东西从我的本地主人推送到名为的遥控器origin
".当然,这个命令的结构更为通用 - 更通用的形式是git push -u <remote> <branch>
,将命名的分支推branch
送到指定的远程,如果远程没有它,则在远端创建它(这就是-u
标志一样).
作为进一步的附录,git push
默认情况下,会将当前分支推送到origin
,对应于git push origin <current-branch>
.
Jef*_*ett 12
您可以拥有多个遥控器,每个遥控器都有不同的名称 - 例如默认的"原点"
您的问题假设您当前已检出主分支.
git push -u origin master
Run Code Online (Sandbox Code Playgroud)
将名为master的本地分支推送到"origin"远程,作为名为master的分支.-u标志告诉本地git跟踪该远程分支作为本地分支的上游.
一个远程只是一句话:一个名字用来识别某个地方其他一些Git仓库.
该字符串origin
是git clone
从其他("origin"-al)Git存储库克隆时自动放入的(单数)远程的默认名称.您可以选择其他名称,和/或添加更多遥控器.每个远程至少有一个URL,这是找到另一个存储库的位置.
对于git push
,第三个字 - 如果需要,调整此数字,如果你添加各种标志; 在这种情况下,你添加,-u
所以现在它是第四个字 - 通常是一些遥控器的名称.
其余的单词都是refspecs,可以归纳(虽然不是100%准确地......实际上,准确度不到50%,具体取决于你如何计算:-))作为由冒号分隔的一对分支名称.
如果您只编写一个分支名称master
,Git将其视为"如果设置了一个,则使用(部分)上游,否则在冒号后使用相同的名称." 通常,上游(如果设置)具有相同的基本名称,因此master
通常会结束意义master:master
.Git发送它们 - 你的分支上的远程URL提交(左边的名字)上的Git ,然后要求他们将你的分支(右边的名字)设置为你刚推送给该分支的同一个提示.
如果你没有输入任何refspecs,Git的默认值取决于你的Git版本.从Git 2.0版开始,默认是将当前分支推送到远程同名的分支.
该-u
标志告诉git push
我,如果推送成功,它应该为您刚刚推送的分支设置上游.
分支的上游分为两部分:远程的名称和该远程分支的名称.既然你给了git push
这两个项目,在远程的名字origin
,和分支是第二个(冒号后)master
从隐含master:master
的master
-这个意愿,如果成功,将上游的master
来origin/master
.
(编辑:你可能,非常合理地,想知道它/
来自上游设置的位置origin/master
.这部分是一个历史文物.不幸的是,它会导致大量的混乱.现在,请记住远程,分支和远程跟踪分支在Git中都是不同的东西.它们都以各种方式相关,但重要的是要记住它们不相同,并且术语具有非常特定的含义.单词track也是过载的.新术语上游更好,但并非所有描述都使用它.)
归档时间: |
|
查看次数: |
15592 次 |
最近记录: |