尝试对我的GitHub存储库执行"git push"时,我回到了一个不寻常的错误:
Counting objects: 8, done. Delta compression using 2 threads. Compressing objects: 100% (4/4), done. Writing objects: 100% (5/5), 1.37 KiB, done. Total 5 (delta 2), reused 0 (delta 0) error: insufficient permission for adding an object to repository database ./objects fatal: failed to write object error: unpack-objects exited with error code 128 error: unpack failed: unpack-objects abnormal exit To git@github.com:bixo/bixo.git ! [remote rejected] master -> master (n/a (unpacker error)) error: failed to push some refs to 'git@github.com:bixo/bixo.git'
哪个有效?SSH://或Git://(文件压缩)
我在Git中理解,git协议是智能的,因为在通信的两端都有一个协议代理来压缩文件传输,从而通过有效地利用网络带宽实现更快的克隆.
从O'Reilly的书中我发现了以下陈述.
For secure, authenticated connections, the Git native
protocol can be tunneled over an SSH connection using
the following URL templates:
ssh: //[user@]example.com[:port]/path/to/repo.git
ssh: //[user@]example.com/path/to/repo.git
ssh: //[user@]example.com/~user2/path/to/repo.git
ssh: //[user@]example.com/~/path/to/repo.git*
Run Code Online (Sandbox Code Playgroud)
我不确定作者是否意味着他说的话.他谈到git协议通过SSH进行隧道传输.
从我的角度来看,除非你连接到git端口(代理端口),否则协议不起作用.SSH仅仅是未压缩的文件传输.
但是根据作者的说法,如果我们使用SSH,他说git协议是通过它进行隧道传输的.那么在GIT中SSH更智能吗?
冯C,谢谢你的回答."网络协议(HTTP和Git)通常是只读的"Git可以rw在你运行deamon时制作--enable=receive-pack.
以下是我的担忧.
当他们说git协议是智能的时,他们就意味着当你执行git clone时,git服务器代理会压缩发送回客户端的数据,因此克隆应该更快.在我的用例中,我将在香港设置git服务器并在圣何塞和其他国家使用它.因此,我希望由于延迟问题而在网络上保持高效.
所以我的问题是,当我使用时,我git clone ssh://user@server/reposloc也获得了git协议的好处吗?根据O'Reilly作者的书,他的意思是git通过ssh进行隧道传输,那么当我没有在服务器上运行git守护进程时,git协议如何工作.
所以使用SSh:// xyz ...它是否同时给出了ssh和git协议的好处?
提前感谢您的答案.
我们使用托管在远程位置的git仓库,并进行共享.我们希望repo是用户和组可读和可写,但没有其他任何权限.远程仓库由不同的用户(比如rUser)拥有.我已core.sharedRepository到0660我的本地回购,以及远程回购.另外,我的umask是0027.因此,每当我创建一个新文件时,它都没有其他权限.
尽管如此,出于某种原因,每当我将更改推送到远程仓库时,它都会在repo.git/objects/目录中创建一些具有权限的新对象-r--r--r--.甚至更奇怪的是,它使我(而不是远程用户)成为目录/文件的所有者.知道发生了什么事吗?
我尝试通过在stackoverflow上查看几个看似相关的问题来找到答案,但找不到任何东西.
我很好奇gitolite这样的程序是如何工作的 - 特别是它们如何与SSH协议交互以提供量身定制的体验.有人可以提供一个例子,说明我可以如何完成以下内容以及我可能在哪里了解更多有关此主题的内容?
? ssh git@github.com
PTY allocation request failed on channel 0
Hi <username>! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.
Run Code Online (Sandbox Code Playgroud)
一个附带问题:我的主要语言是JavaScript.是否有可能用NodeJS完成我想要的东西?