【发布时间】:2011-10-31 03:48:41
【问题描述】:
我刚刚在我的 linux 服务器上设置了 git 并配置了 SSH - 我想创建私有存储库以与我的朋友一起工作。当我拉或克隆该回购时,一切正常(局域网),但是当我的朋友尝试拉或克隆它(通过互联网)时, git 挂在:
remote: Compressing objects: x
其中 x 始终低于 17%。
有什么问题或我该如何解决?
PS:我没有使用 gitosis,我初始化了远程仓库:git --bare init。
提前致谢。
更新:
结果命令:
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
hideDotFiles = dotGitOnly
[remote "origin"]
url = ssh://git@server:port/~/repo_name.git
fetch = +refs/heads/*:refs/remotes/origin/*
$ git fetch -v
Enter passphare for key '/c/Users/dev/.ssh/id_rsa':
remote: Counting objects: 76, done.
remote: Compressing objects: 21% (12/55)
但是,当我的朋友获得带有源的 ZIP 并推送它时,一切正常。 所以他可以推。我添加了一个空文件并推送,他成功下载(拉取)了。
【问题讨论】:
-
在 server-repo 上执行
git gc有帮助吗?是否还涉及不同的协议(ssh/git/static-http/“intelligent”-http)?您是否为您和您的朋友访问使用相同的用户帐户,还是他们不同(我在考虑权限问题)? -
@Rudi 好吧,当我通过本地 SSH 执行
git gc时(服务器在我的计算机上运行)它完成了,但是当我的朋友尝试做同样的事情时它冻结了(光标永远闪烁)。在那之后他试图拉动它并冻结在Compressing objects: 7%。是的,我们有一个 git 帐户,我们正在使用 SSH 协议(在两台计算机上,来源看起来像这样):ssh://git@server_uri:port/~/repo_name.git。 Git repo 位于 git 帐户的主目录中。顺便说一句,我们使用的是git pull origin master。 -
听起来好像有一个网络组件在几秒钟后断开了 ssh 连接,很可能是 NAT 缺陷。如果连接的 TCP 数据包在一定时间后被丢弃(我怀疑缺少 ACK 数据包 server->client),则可以在两端尝试使用 wireshark。
-
以防万一,您的朋友可以在克隆前尝试
git config --global http.postBuffer 524288000吗? -
@Vonc 不幸的是它没有帮助。它仍然冻结在
10-14%
标签: linux git ssh compression debian