2013-06-03 96 views
40

每次我嘗試推送到github時,Git push都會掛起。我正在使用Cygwin和Windows 7. Git在本地跟蹤分支機構,提供狀態,設置全局user.name和user.email以及允許提交都很好。推送到Github時Git push會掛起?

我還是個新手,在學習。

我輸入git push,git push origin mastergit push -u origin master我得到的只是一個空行,需要我用ctl-c來得到提示信息。

ssh-keygen -t rsa -C "[email protected]"問我要文件名和掛

git push heroku master

$ git status回報On branch master nothing to commit, working directory clean

$ git pull回報Already up to date

$ git remote -v回報:

heroku [email protected]:myherokusite.git (fetch) 

heroku [email protected]:myherokusite.git (push) origin 

https://github.com/gitusername/appname.git (fetch) origin 

https://github.com/gitusername/appname.git (push) 

or the correct ssh remote settings are returned when trying this with ssh 

更新:使用SSH URL [email protected]:gitusername/gitrepo.git還掛着

git remote set-url origin https://github.com/gitusername/appname.git是正確的

更新時間:我可以看到在Windows任務管理器運行時,它掛起git的過程。

我已經試過:

使用不同的網絡連接位置之間的HTTPS和SSH

開關和它掛

卸載飯桶。從以下版本重新安裝:https://code.google.com/p/msysgit/downloads/list

Uninstalled git。安裝Cygwin的git

卸載git。安裝了Github for Windows GUI應用程序,並且我能夠推送。但是這個應用程序的功能有限,迫使我離開我的Cygwin窗口進入另一個應用程序,然後強制我進入Windows命令提示符以獲得完整的功能,我想我已經使用Cygwin逃脫了。

花了很多很多時間試圖解決這個問題,它之前工作無誤,謝謝。

UPDATE2014分之4:我重建整個機器的Win 7,Cygwin的等,而且所有正在工作的罰款

+1

你是在防火牆還是代理之後? –

+0

我試過不同的互聯網連接沒有成功,是的,我有反病毒從來沒有造成過問題。沒有代理。 –

+3

運氣好嗎?我遇到了與cygwin相同的問題。解決辦法:如果我使用本地windows shell(cmd.exe),但是'git push origin master'工作正常。 –

回答

15

嘗試GIT_CURL_VERBOSE = 1個混帳推...這可能會發生由於代理設置的git會試圖通過代理服務器和代理達到github.com沒有響應。使用GIT_CURL_VERBOSE = 1將顯示IP地址和一些信息。您可以將ip地址與命令輸出「host www.github.com」ip地址進行比較。如果它們不同,那麼你可以使https_proxy =「」然後再試一次。

15

嘗試創建像~/sshv.sh一個腳本,將告訴你什麼SSH達:

#!/bin/bash 
ssh -vvv "[email protected]" 

允許~/sshv.sh文件執行該文件的所有者:

chmod u+x ~/sshv.sh 

然後調用你的git push用:

GIT_SSH=~/sshv.sh git push ... 

在我的情況下,這幫助我弄清楚我正在使用需要關閉的ssh共享連接,所以我殺死了那些ssh進程並開始工作。

+0

這對我非常有幫助 - 謝謝! –

50
git config --global core.askpass "git-gui--askpass" 

這對我有用。可能需要3-5秒纔會顯示提示,只需輸入您的登錄憑據,您就可以開始使用。

+0

這解決了我的問題,謝謝! – HankCa

+0

我跑這個,現在它一直說'錯誤:不能運行git-gui-askpass:沒有這樣的文件或目錄',你能告訴我如何反轉這個嗎? –

+1

@hello_there_andy [this](http://stackoverflow.com/questions/30294980/git-gui-askpass-no-such-file-or-directory)可以幫助你。 – forloop

6

它值得檢查是否使用cygwin git或外部git(即github)。

如果whereis git只返回/cygdrive/c/Program Files (x86)/Git/cmd/git.exe或類似的最好安裝cygwin git包,這解決了我的問題。

0

我想知道,如果是我有同樣的事情......

  1. 走進膩子
  2. 點擊在保存會話「默認設置」。單擊加載
  3. 進入連接 - > SSH - >錯誤
  4. 集「扼流圈PuTTY的SSH-2'winadj的要求」爲開啓(而不是自動)
  5. 返回到會話樹形視圖(頂清單)
  6. 單擊「保存的會話」框中的「默認設置」。點擊保存。

這(幾乎一字不差)來自https://tortoisegit.org/issue/1880

-1

發生這種情況對我來說,這裏是我固定的。我用Cygwin和它絞死,所以我嘗試在提交提示輸入用戶名/密碼:

git config --global core.askpass "git-gui--askpass" 

一旦我執行git push -u origin master和輸入的用戶名密碼,它仍然沒有掛,但似乎承諾GitHub上。

從dos提示符使用相同的命令:git push -u origin master Git不掛起。因此,在我的情況下,可能與CygWin相關的問題。

1

我只是想說我在我的AWS EC2實例上遇到了這個問題。當我將它配置爲只允許來自負載平衡器的流量時,我試圖從我的EC2實例本身推送。我改變了規則以允許來自任何地方的HTTP,但它仍然沒有解決問題。然後我意識到這是因爲我的安全組被配置爲不允許通過HTTPS從我的EC2實例出站流量。我沒有允許HTTPS入站流量使其正常工作,儘管對於您可以使用HTTPS入站可能是一個很好的策略。

6

我有同樣的問題,完全相同的症狀...我正要重建我的整個系統在我的絕望))。

我甚至天真嘗試git config --global core.askpass "git-gui--askpass"像有些人建議在這裏,但它沒有工作...... git push仍然凍結...

但後來我想通了,有我的SSH代理錯誤。所以我重新啓動了ssh-agent,並且......利潤

結論:當你有ssh連接問題時,總是檢查你的SSH代理和SSHD服務器......我很確定這是你的問題(這就是爲什麼它在重新安裝後工作系統)

+1

你如何重新啓動ssh-agent?我正在使用linux –

+0

我通過終止'ssh-agent.exe'過程重新啓動了ssh-agent。在windows上,你可以使用'ps -ef | grep ssh'找到它,並用'kill'來消滅它。重新啓動可能更安全。 @YanKingYin – ashes999

+0

@Yan King Yin 11月,我不確定linux的問題,但是在Mac上,我使用LaunchControl GUI或者運行:'sudo launchctl stop/System/Library/LaunchAgents/org.openbsd.ssh-agent'和'sudo launchctl start/System/Library/LaunchAgents/org.openbsd.ssh-agent' ...很確定linux應該有類似於bsd launchd的東西...就像init -v或systemd停止/啓動代理/守護進程的方式一樣...可以試試這個咒語:'killall ssh-agent; eval $(ssh-agent)'。讓我知道它是否適合你。 – Drew

3

請嘗試以下操作;

混帳配置--global core.askpass「混帳桂 - askpass」

這將提示憑據,然後「推」的成功,如果憑據是正確的。

+0

感謝您的回答。我配置了'core.askpass'並安裝了'git-gui'。但奇怪的是,它甚至沒有要求輸入密碼,只是在我做完了之後才推送更改! –

1

當我的電腦的磁盤空間已滿時,發生這種情況。刪除一些文件&清空垃圾清理。

1

在我的情況下,問題是有一些過程,已經鎖定了我的鑰匙串訪問...

強制退出其他所有應用程序,以確保鑰匙串訪問未鎖定你的Mac

+0

這是我的情況。幸運的是,git push被掛在多個遙控器上,所以我知道遠程服務器沒有問題。 –

0

上爲求(有時像這樣的問題並不像看起來那麼複雜):

配置一個不存在的遠程存儲庫也會導致這種行爲 - 我最近發現意外地將我的原始URL更改爲githu.com

0

當推送大量文件時,通常會遇到自己遇到此問題。

如果您可以耐心等待文件完成上傳,您可能根本無需執行任何操作。祝你好運 -

1

我有同樣的問題。 不要擔心和搜索無盡複雜的解決方案, 只是刪除git並重新安裝它。

sudo apt-get purge git 
sudo apt-get autoremove 
sudo apt-get install git 

那就是它。它應該現在工作

0

我也有一個問題,其中git掛在Windows 7上的「寫作對象」部分(使用msysgit,git的默認窗口客戶端),這是我在谷歌的第一擊,所以我也會在這裏發佈我的答案。

git config --global core.askpass "git-gui--askpass"不幸運,但經過一番研究後,我發現Git push halts on "Writing Objects: 100%"上的提示使用git config –global sendpack.sideband false完美工作。

我終於可以從命令行再次推!

0

我以爲我的Git窗口屏幕遭到了敲擊,但實際上有一個提示符號出現在它後面。請檢查它並輸入您的憑據,就是這樣。