很多时候,Git 和Ruby on Rails看起来很神奇……比如在Ruby on Rails 3 Tutorial book 的第一章中,它谈到了 Git:
git remote add origin git@github.com:peter/first_app.git git push origin master
它几乎说“它只是工作”而没有过多地谈论它们是什么并开始谈论分支。在网上搜索显示git remote add是添加一个“短名称”,例如origin,它也可以是任何名称,就像一个URL的别名。
git remote add
origin
并且origin是远程存储库指向的通常路径(在“添加远程存储库”下的http://git-scm.com/book/en/Git-Basics- Working-with-Remotes中)。
那么为什么 URL 不是git://git@github.com/peter/first_app.git,而是其他语法——它是什么语法?为什么它必须以 结尾.git?我试过.git最后不使用它,它也有效。如果不是.git,那还能是什么?gitingit@github.com似乎是 Git 服务器上的用户帐户?
git://git@github.com/peter/first_app.git
.git
git
git@github.com
另外,为什么它需要如此冗长才能使用git push origin master?默认不能是origin和master吗?我发现第一次origin master是需要的,但是经过一个小的编辑和提交之后,git push它就只需要(不需要origin master)。知道发生了什么的人可以提供一些细节吗?
git push origin master
origin master
git push
有时感觉就像很多魔法没有解释......有时使用它的人非常自信,当被问到为什么时,无法解释它,并回答说“就是这样”。有时非常实际和务实。实用一点也不错,但可能不实用到不知道发生了什么的地步。
Git 就像 Unix。它是用户友好的,但它对它的朋友很挑剔。它与 shell 管道一样强大且用户友好。
话虽如此,一旦你理解了它的范式和概念,它就会像我所期望的 Unix 命令行工具一样具有 Zenlike 的清晰度。您应该考虑抽出一些时间来阅读在线提供的众多优秀 Git 教程之一。 Pro Git 书是一个很好的起点。
回答你的第一个问题。
git remote add ...
您可能知道,Git 是一个分布式版本控制系统。大多数操作都是在本地完成的。为了与外界交流,Git 使用了所谓的 “远程” 。这些存储库不是本地磁盘上的存储库,您可以将更改 推 送到其中(以便其他人可以看到它们)或从中 提取 (以便您可以获取其他更改)。该命令git remote add origin git@github.com:peter/first_app.git创建一个名为的新远程,origin位于git@github.com:peter/first_app.git。一旦你这样做了,在你的推送命令中,你可以推送到 源 而不是输入整个 URL。
git remote add origin git@github.com:peter/first_app.git
git@github.com:peter/first_app.git
这是一条命令,上面写着“将名为 master的本地分支中的提交推送到名为 origin 的远程分支”。 执行此操作后,您上次与origin 同步的所有内容都将发送到远程存储库,其他人将能够在那里看到它们。
现在关于传输(即,什么git://)意味着。远程存储库 URL 可以有多种类型(file://、https://等)。Git 只是依靠传输提供的身份验证机制来处理权限和内容。这意味着对于file://URL,它将是 Unix 文件权限等。该git://方案要求 Git 使用自己的内部传输协议,该协议针对发送 Git 变更集进行了优化。至于确切的 URL,是因为 GitHub 设置其 Git 服务器的方式。
git://
file://
https://
现在是冗长的。您键入的命令是通用命令。可以告诉 Git 类似“此处称为 master 的分支是远程称为 bar上称为 foo 的分支的本地镜像”。在 Git 中,这意味着 主 _ 跟踪* _bar/foo 。当您第一次克隆时,您将获得一个名为 master的分支和一个名为 origin 的远程分支(您从那里克隆),其中本地 master 设置为在 origin 上跟踪 master。 __ ___*_
设置好后,您可以简单地说git push,它会做到的。如果您需要,可以使用较长的命令(例如,git push可能推送到官方公共存储库,git push review master并可用于推送到您的团队用来审查代码的单独远程)。您可以使用该命令的--set- upstream选项将您的分支设置为跟踪分支。git branch
git push review master
--set- upstream
git branch
我觉得 Git(与我使用过的大多数其他应用程序不同)从内到外更容易理解。一旦您了解了数据在存储库中的存储和维护方式,命令及其作用就会变得一清二楚。我同意你的观点,在许多 Git 用户中存在一些精英主义,但我也发现曾经有 Unix 用户,值得通过他们来学习系统。祝你好运!