cat-file
命令从 Git 那里取回数据。example_file.txt
时,git 会创建一个包含文件内容的 blob-object。(+)<src>:<dst>
。 <src>
代表远程版本库中的引用; <dst>
是本地跟踪的远程引用的位置; +
号告诉 Git 即使在不能快进的情况下也要(强制)更新引用。<src>
和<dst>
均支持以表达式表达。send-pack
和 receive-pack
进程。send-pack
进程连接到远端运行的 receive-pack
进程。send-pack
进程,通过 SSH 连接 Git 服务器,然后在服务端执行命令。send-pack
提供的数据。send-pack
的输出和相应的包文件。 服务端在收到请求后相应地作出成功或失败的 HTTP 响应。fetch-pack
进程,连接至远端的 upload-pack
进程,以协商后续传输的数据。fetch-pack
连接后,upload-pack
会返回类似下面的内容:receive-pack
的响应很相似,但是这里还包含 HEAD
引用所指向内容(symref=HEAD:refs/heads/master)
, 这样如果客户端执行的是克隆,它就会知道要检出什么。git-upload-pack
是非常相似的,但是第二个数据交换则是一个单独的请求:auto gc
的命令。 如果有太多松散对象(不在包文件中的对象)或者太多包文件,Git 会运行一个完整的 git gc
命令。gc.auto
与 gc.autopacklimit
的设置来改动这些数值。refs/heads
创建一个新的文件。 为了获得指定引用的正确 SHA-1 值,Git 会首先在 refs
目录中查找指定的引用,然后再到 packed-refs
文件中查找。git reflog
找回丢失的提交信息。git fsck --full
显示出所有没有被其他对象指向的对象,从而找到丢失的 commit。