13

ここで、git とプロキシのトピックをカバーする多くの質問を見ましたが、どれも私の問題を解決しません。Bitbucket から git リポジトリを複製しています。ホーム ネットワークからはすべて正常に動作しますが、NTLM 認証でプロキシを使用している職場ではハングします。git clone コマンドの出力を参照してください。

$ git clone https://my_user@bitbucket.org/my_user/my_project.git --verbose
Cloning into 'my_project'...
Password for 'https://my_user@bitbucket.org':
POST git-upload-pack (174 bytes)
remote: Counting objects: 548, done.
remote: Compressing objects: 100% (367/367), done.
remote: Total 548 (delta 216), reused 0 (delta 0)
Receiving objects: 100% (548/548), 5.28 MiB | 533 KiB/s, done.
Resolving deltas: 100% (216/216), done.

git clone コマンドは常に「デルタの解決」でハングします。

私のセットアップ:

  • msysgit 1.8.0 を搭載した Windows 7 64 ビット
  • 構成されたプロキシ:

    $git config --global http.proxy http://MY_DOMAIN\\\my_user:my_password@http-proxy:8080
    

私のリポジトリにしかファイルがほとんどなかった当初、git clone が機能していたため、この問題は何らかの形で git オブジェクトのサイズに関連しているようです。

4

6 に答える 6

6

Git 1.7.11 で同じ問題が発生しました。GitHub からクローンを作成しようとすると、プロセスがハングアップし、ファイルがありません。同様の質問でトリックと他の多くの提案を試しましたverify-packが、何も機能しませんでした。

Git の最新バージョンで改善または修正されているのではないかと考え、1.8.3 にアップグレードしました。ビンゴ、これで動作するようになりました。クローンを作成できます。

于 2013-06-13T12:08:46.260 に答える
4

すみません、私の英語はとても下手です。あなたが理解することを願って。

ここで同じ問題が発生しました。問題を見つけて修正することはできませんが、最終的にチェックアウトできました。git clone が "Resolving deltas" でハングしたら、git プロセスを強制終了します。したがって、 foldermy_projectと file があります.git\objects\pack\pack-<sha1>.pack。ここで、リビジョン番号を見つける必要があります。以下にこのコマンドを入力します。

git verify-pack -v .git\objects\pack\pack-<sha1>.pack | grep "commit" | more

出力は次のようになります。

98c9f779992fc9a52372e0a1a76647e5d9ca5e01 commit 340 227 12
b6435d98f7b62ce69c59ce582beddf547f26d8a2 commit 305 208 239
a2a39a0c707b2919c87b194dca9a0dea307ce069 commit 239 159 447
...
4803e013b30dc9d31e4a8dba7e1a2d65e6f61422 commit 243 167 6768
-- More  --    

上部にあるの98c9f779992fc9a52372e0a1a76647e5d9ca5e01は HEAD リビジョンなので、この時点までチェックアウトできます。

git checkout -b master 98c9f779992fc9a52372e0a1a76647e5d9ca5e01

終わり。

于 2013-02-07T10:26:39.090 に答える
3

私は同じ問題を抱えており、原因を特定することはできませんが、cakyus で説明されているように、verify-pack を使用して最後のコミットをチェックアウトするよりも、わずかに優れた回避策であると考えています。

最後のコミットをマスター ブランチとしてチェックアウトする際の問題は、コミットが特にそのブランチに属していることを保証できないことです。

  • デルタの解決でハングした git プロセスを中断します。Ctrl+C
  • ブランチ情報を取得するgit fetch
  • master ブランチ (またはその他のブランチ) をチェックアウトします。git checkout master

これにより、git はブランチ マスターをセットアップして、リモート ブランチ マスターを追跡し、ブランチ情報を保持しながらファイルを正しくアンパックしました。

于 2013-04-17T09:49:16.227 に答える
0

答えではなく、この問題の原因を絞り込むために症状を提供するだけです。まったく同じ問題があります。「デルタを解決する」だけです。

v1.7.10 Win2008 R2 Enterprise Proxy は、HTTP および HTTPS 用に構成されています。

同僚にサーバーにログインしてもらい (.gitconfig は彼のローミング プロファイルの一部です)、それが構成かインストールかを確認します。

于 2012-11-27T22:35:22.320 に答える
0

このブログhttp://stas-blogspot.blogspot.ca/2012/12/git-hangs-after-resolving-deltas.htmlのコメントから私のために働く解決策:

パック ファイルが正しくダウンロードされているので、Ctrl+C でプロセスを中断し、git fetch を実行してリモート リポジトリからブランチ情報をフェッチし、git checkout でマスター (またはその他の) ブランチを再度チェックアウトするだけです。主人。

したがって、解決策は、ハングしているプロセスを強制終了してから、次のようにすることです。

git fetch
git checkout
于 2013-11-21T00:08:05.093 に答える