Ssh
git push 失敗 - 檢查權限和 ssh 保持活動狀態 - 還有什麼?
我將我的 git 伺服器遷移到了新伺服器,現在我嘗試將數據推送到新伺服器。
- 客戶端:Windows、TortoiseGit
- 伺服器:docker git-server
嘗試推送時的日誌
git.exe push --progress "originNew" master:master Counting objects: 26735, done. Delta compression using up to 4 threads. Compressing objects: 100% (14502/14502), done. Writing objects: 2% (535/26735), 32.00 KiB | 45.00 KiB/s
在對話框 *TortoiseGitPlink 致命錯誤:“網路錯誤:軟體導致連接中止”*上點擊“確定”後,上述文本變為
git.exe push --progress "originNew" master:master Counting objects: 26735, done. Delta compression using up to 4 threads. Compressing objects: 100% (14502/14502), done. fatal: sha1 file '<stdout>' write error: Broken pipe fatal: The remote end hung up unexpectedly fatal: The remote end hung up unexpectedly git did not exit cleanly (exit code 128) (405265 ms @ 02.04.2018 12:16:21)
可能感興趣:壓縮需要約 6 秒至 99% (14430/14502),對於 100%(最後約 70 項)需要約 6 分鐘。
我已經做了什麼:
權限: 對僅包含 2 個文件的測試儲存庫執行相同操作!
SSH keepalive: 我將客戶端上的 ssh_config 更改為包含
Host * ServerAliveInterval 25 ServerAliveCountMax 40
這應該每 25 秒發送一個數據包(最多 40 次),所以如果我與 git 伺服器的 ssh 連接空閒,它應該保持活動約 16 分鐘。
HD: 客戶端和伺服器上有足夠的空間
問題:
- 還有其他想法如何將我的數據推送到新伺服器嗎?
- 除了權限和空閒連接之外,還有什麼其他想法會導致這種情況?
- 如何檢查我更改的 ssh_config 文件是否正確?(由 TortoiseGit 使用)。我更改了“C:\Program Files\Git\etc\ssh”(只找到了一個)
- 我可以以某種方式調查誰關閉了 ssh 連接嗎?
- 客戶端和伺服器上的哪些日誌文件可以幫助找到問題?我可以打開任何詳細/調試標誌嗎?
好的,我解決了這個問題,不幸的是我沒有找出問題所在。但也許它會激發有類似問題的人。
我做了什麼:而不是從客戶端推送到新伺服器:
- 我在舊伺服器上生成密鑰並從那裡推送
- 我將新伺服器上的 repo 複製到客戶端上的新臨時 repo
- 我將舊客戶端儲存庫中的更改推送到臨時客戶端儲存庫
(有些更改我無法再推送到舊伺服器。不幸的是,我不記得我是否嘗試從舊客戶端儲存庫推送到新伺服器)
- 然後我終於將這些更改從 temp 推送到新的伺服器 repo
現在一切正常。我終於可以從(舊的和新的)客戶端回購拉和推到新的伺服器,而且速度非常快。與此同時,我已經刪除了那個新的客戶端回購。
之前持續了很長時間的壓縮部分現在非常快。也許像重新包裝這樣的東西會有所幫助?!
祝你好運