gpt4 book ai didi

git - 什么是 "git remote add ..."和 "git push origin master"?

转载 作者:IT王子 更新时间:2023-10-29 01:13:06 29 4
gpt4 key购买 nike

经常,Git 和 Ruby on Rails看起来很神奇......比如在first chapter of 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,还能是什么? git@github.com 中的git 好像是Git 服务器上的用户账号?

另外,为什么使用 git push origin master 需要这么冗长?不能默认是origin和master吗?我发现第一次需要 origin master ,但经过小的编辑和提交后, git push 就足够了(不需要 origin master )。有知道的人可以提供一些细节吗?

有时它感觉就像很多没有解释的魔法......有时使用它的人非常自信,当被问及为什么时,无法解释,并回答“就是这样”之类的话。有时很务实和务实。务实一点不错,但可能不务实到不知道怎么回事。

最佳答案

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

话虽这么说,一旦您理解了它的范例和概念,它就具有我对 Unix 命令行工具所期望的 Zenlike 清晰度。您应该考虑抽出一些时间阅读网上提供的众多优秀 Git 教程之一。 Pro Git 这本书是一个很好的起点。

回答你的第一个问题。

  1. 什么是 git remote add ...

    您可能知道,Git 是一个分布式版本控制系统。大多数操作都在本地完成。为了与外界通信,Git 使用了所谓的“远程”。这些存储库不同于本地磁盘上的存储库,您可以将更改推送到其中(以便其他人可以看到它们)或从中 pull 出(以便您可以获取其他变化)。命令 git remote add origin git@github.com:peter/first_app.git 创建一个名为 origin 的新远程,位于 git@github.com:peter/first_app.git。执行此操作后,在推送命令中,您可以推送到 origin 而不是键入整个 URL。

  2. 什么是 git push origin master

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

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

现在是冗长的。您键入的命令是通用命令。可以告诉 Git 类似“这里名为 master 的分支是名为 foo 的分支在名为 bar 的远程分支上的本地镜像”。在 Git 中,这意味着 master tracks bar/foo。当你第一次克隆时,你会得到一个名为 master 的分支和一个名为 origin 的远程分支(你克隆的地方),本地主集设置为跟踪 master产地。

设置完成后,您只需说 git push 即可。如果需要,可以使用更长的命令(例如,git push 可能会推送到官方公共(public)存储库,git push review master 可用于推送到单独的远程您的团队使用它来审查代码)。您可以使用 git branch 命令的 --set-upstream 选项将您的分支设置为跟踪分支。

我觉得 Git(与我使用过的大多数其他应用程序不同)从内到外更好理解。一旦您了解了数据在存储库中的存储和维护方式,命令及其作用就会变得非常清晰。我确实同意你的看法,许多 Git 用户中存在一些精英主义,但我也发现曾几何时,Unix 用户也是如此,值得通过他们来学习这个系统。祝你好运!

关于git - 什么是 "git remote add ..."和 "git push origin master"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5617211/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com