git-receive-pack如何工作?

Jer*_*odi 12 git

我想知道git-receive-pack是如何工作的,因为我完全不知道它会发生什么.任何人都可以对这个谜团有所了解吗?

Kev*_*ell 13

根据手册页:

http://schacon.github.com/git/git-receive-pack.html
Run Code Online (Sandbox Code Playgroud)

最终用户通常不会直接调用此命令.协议的UI位于git send-pack端,程序对用于将更新推送到远程存储库.有关pull操作,请参阅git-fetch-pack(1).

该命令允许在远程端创建和快速转发sha1 refs(磁头/标签)(严格来说,它是本地端git-receive-pack运行,但是对于坐在发送包端的用户) ,它正在更新遥控器.困惑?)

即使是编写手册页的人也认为这是令人困惑的,所以不要责怪自己,你不理解它!

基本上,这是代码的一部分,它接收远程服务器上的提交,这些提交是send-pack在您执行操作时在本地计算机上打包并发送的git push.

理解它背后的细节并不重要 - 正如文档所说,它不是你应该实际键入的命令.

如果你真的对内部的工作方式非常感兴趣,那么有几个好的开始可能是:

维基百科页面上的Git(软件), Git的网站本身,或 免费书籍,专业的Git

或者,您可以随时在github上的源代码中查看该命令的'c'代码.

http://git-scm.com/

  • "基本上,这是代码的一部分,它可以将代码更改和提交打包到您的计算机上,然后将它们发送到您执行git推送时将代码推送到的位置." 这是不正确的.`receive-pack`就是_receives_那些包.`send-pack`是什么打包他们:) (2认同)

cap*_*aig 5

git 的存储库中有关于接收包协议的非常详细的文档。您可以在这里看到它https://github.com/git/git/blob/master/Documentation/technical/pack-protocol.txt