小编典典

什么是“git remote add ...”和“git push origin master”?

all

很多时候,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的别名。

并且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 push origin master?默认不能是origin和master吗?我发现第一次origin master是需要的,但是经过一个小的编辑和提交之后,git push它就只需要(不需要origin master)。知道发生了什么的人可以提供一些细节吗?

有时感觉就像很多魔法没有解释......有时使用它的人非常自信,当被问到为什么时,无法解释它,并回答说“就是这样”。有时非常实际和务实。实用一点也不错,但可能不实用到不知道发生了什么的地步。


阅读 115

收藏
2022-04-15

共1个答案

小编典典

Git 就像 Unix。它是用户友好的,但它对它的朋友很挑剔。它与 shell 管道一样强大且用户友好。

话虽如此,一旦你理解了它的范式和概念,它就会像我所期望的 Unix 命令行工具一样具有 Zenlike
的清晰度。您应该考虑抽出一些时间来阅读在线提供的众多优秀 Git 教程之一。 Pro Git 书是一个很好的起点。

回答你的第一个问题。

  1. 是什么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。

  1. 是什么git push origin master

这是一条命令,上面写着“将名为 master的本地分支中的提交推送到名为 origin 的远程分支”。 执行此操作后,您上次与origin
同步的所有内容都将发送到远程存储库,其他人将能够在那里看到它们。

现在关于传输(即,什么git://)意味着。远程存储库 URL 可以有多种类型(file://https://等)。Git
只是依靠传输提供的身份验证机制来处理权限和内容。这意味着对于file://URL,它将是 Unix 文件权限等。该git://方案要求 Git
使用自己的内部传输协议,该协议针对发送 Git 变更集进行了优化。至于确切的 URL,是因为 GitHub 设置其 Git 服务器的方式。

现在是冗长的。您键入的命令是通用命令。可以告诉 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(与我使用过的大多数其他应用程序不同)从内到外更容易理解。一旦您了解了数据在存储库中的存储和维护方式,命令及其作用就会变得一清二楚。我同意你的观点,在许多
Git 用户中存在一些精英主义,但我也发现曾经有 Unix 用户,值得通过他们来学习系统。祝你好运!

2022-04-15