很多时候,Git和Rails的看起来像变魔术一样......如在first chapter of Rails 3 Tutorial book,它谈论的Git:什么是“git remote add ...”和“git push origin master”?
git remote add origin [email protected]:peter/first_app.git
git push origin master
和它几乎说,“它只是作品”没有说太多关于它们是什么并开始谈论分支。在网上搜索显示git remote add
是添加一个“短名称”,如origin
,它也可以是任何名称,这就像一个URL的别名。而origin
是远程回购指向的常用路径。 (在http://git-scm.com/book/en/Git-Basics-Working-with-Remotes下的“添加远程仓库”)
那么为什么URL不是git://[email protected]/peter/first_app.git
,但在其他语法 - 它是什么语法?为什么必须以.git
结束?我试过最后不使用.git
,它也可以。如果不是.git
,还有什么可以的?在[email protected]
中的git
似乎是git服务器上的用户帐户?
此外,它为什么需要如此详细以便使用git push origin master
?不能默认是起源和主人吗?我发现第一次需要origin master
,但经过小小的编辑和提交,然后git push
就是它所需要的(不需要origin master
)。知道发生了什么的人可以提供一些细节吗?
有时候感觉就像很多魔术一样没有解释......有时候使用它的人是如此自信,当被问到为什么,无法解释它,并用“就是这样”的方式回应。有时非常务实和务实。实践并不坏,但不知道发生了什么事情可能不切实际。
您可能需要在段落中添加关于传输的注释,说明'[email protected]:peter/first_app.git'是git中ssh URL的'scp'风格语法。还有一点是,默认情况下,'master'的上游配置不会影响'git push' *的行为,除非*您有'push.default'设置为'tracking'(或更高版本的'upstream' ) - 我做了一篇关于这个混淆源的博客文章:http://longair.net/blog/2011/02/27/an-asymmetry-between-git-pull-and-git-push/ – 2011-04-11 06:15:24
该注释 - 如果不使用'push.default',则在使用'git push'时,将使用上游配置来查找默认远程,但不会影响refs的映射。 – 2011-04-11 06:46:47
是不是......我使用的其他VCS如TortoiseSVN似乎是非常“黑匣子”......一些简单的命令具有非常明确的工作方式。学习它不到一个小时,每个人都很清楚它是如何做到的。使用Git或Hg,看起来更像是一个单元的学期课程。当发生什么事情时,人们并不确定发生了什么以及如何解决问题。 [cont'd] – 2011-04-11 06:47:11