環境

  • [OS] Ubuntu 22.04.4 LTS
  • [Git] 2.34.1

エラー1回目(Bitbucket)

  • 課題

    • Bitbucketにソースをpushしようとしたらエラーが起きました。

      # git push origin master
      :
      (中略)
      :
      Counting objects: 100% (1244/1244), done.
      Delta compression using up to 2 threads
      Compressing objects: 100% (1232/1232), done.
      client_loop: send disconnect: Broken pipeiB | 5.36 MiB/s
      send-pack: unexpected disconnect while reading sideband packet
      fatal: the remote end hung up unexpectedly
      
  • 解決策

    • ページ末尾の*aを実行しつつ、バッファサイズを適当に増やしたら直りました。

      # git config --global http.postBuffer 3572864000
      

エラー2回目(Bitbucket)

  • 課題

    • 上記1回目と同様に多めのファイルをpushしたらエラー。

      # git push -u origin master
      :
      (中略)
      :
      Enumerating objects: 308, done.
      Counting objects: 100% (308/308), done.
      Delta compression using up to 2 threads
      Compressing objects: 100% (288/288), done.
      send-pack: unexpected disconnect while reading sideband packet
      Connection to bitbucket.org closed by remote host.
      fatal: the remote end hung up unexpectedly
      
  • 解決策

    • .gitconfigにこちらを追記したら解消しました。

      # cat ~/.gitconfig
      :
      (中略)
      :
      [core] 
      packedGitLimit = 512m 
      packedGitWindowSize = 512m 
      [pack] 
      deltaCacheSize = 2047m 
      packSizeLimit = 2047m 
      windowMemory = 2047m
      

エラー3回目(GitHub)

  • 課題

    • 今度はGitHubに多めのファイルをpushしたらエラー。

      # git push -u origin master
      :
      (中略)
      :
      Enumerating objects: 311, done.
      Counting objects: 100% (311/311), done.
      Delta compression using up to 2 threads
      Compressing objects: 100% (284/284), done.
      Connection to github.com closed by remote host.
      send-pack: unexpected disconnect while reading sideband packet
      fatal: the remote end hung up unexpectedly
      
  • 解決策

    • ~/.ssh/configにこちらを追記したら解消しました。

      # cat ~/.ssh/config
      Host *
      ServerAliveInterval 600
      TCPKeepAlive yes
      IPQoS=throughput
      

お役立ちコマンド

  • (*a) 詳細ログ表示

    # export GIT_TRACE_PACKET=1
    # export GIT_TRACE=1
    # export GIT_CURL_VERBOSE=1
    
  • (*b) 現在の設定確認

    git config --list