2010-03-31 132 views
4

我在Windows XP上使用Git和TortoiseGit, ,我在Windows Vista 64位版本上有遠程裸存儲庫。Git:推送到遠程服務器時失敗,'REPOSITORY_PATH'不是git命令

當我試圖將我的本地文件推送到遠程裸存儲庫時,出現以下錯誤消息。

git.exe push "origin" master:master 

git: '/Git_Repository/.git' is not a git command. See 'git --help'. 

fatal: The remote end hung up unexpectedly 

任意網址是:用戶名@ SERVERIP:/Git_Repository/.git

相同的任意網址,而這樣做克隆/讀取/拉工作就好了。

從遠程機器的本地目錄訪問這個裸倉庫也沒有問題,所以我相信我的路徑有問題。

我可以正確推/拉GitHub,但我使用的是由GitHub提供的URL。

有人知道我的配置有什麼問題嗎?

這裏是我的遠程的.git /配置

[core] 
repositoryformatversion = 0 
filemode = false 
bare = true 
logallrefupdates = true 
ignorecase = true 
hideDotFiles = dotGitOnly 

這裏是我的本地的.git/config中

[core] 
repositoryformatversion = 0 
filemode = false 
bare = false 
logallrefupdates = true 
symlinks = false 
ignorecase = true 
hideDotFiles = dotGitOnly 
[remote "origin"] 
fetch = +refs/heads 
url = [email protected]:/Git_Repository/.git 
[branch "master"] 
remote = origin 
merge = refs/heads/master 

我編輯的URL,以使其更加準確,但它仍然表現出同樣的錯誤

更多的是,無論我在serverip後輸入什麼,它仍然顯示相同的錯誤消息

如果URL

SSH://用戶@服務器IP/Git_Repositorywrongname/git的

則錯誤消息

GIT中: '/Git_Repositorywrongname/.git' 是不是git命令。參見'git --help'。

當用戶連接到遠程存儲庫,執行的GIT中的命令是從SSH的bin目錄。所以我相信我的SSH配置存在問題,這就是爲什麼我可以在本地/本地遠程計算機上正常執行git操作的原因。

我跟着http://code.google.com/p/tortoisegit/wiki/HOWTO_CentralServerWindowsXP引導和鏈接的4命令

我錯過了什麼?

感謝您的閱讀

+0

git的表演/ config - 我想象你在那裏有一些很奇怪的東西。 – Dustin 2010-03-31 06:13:54

+0

從URL下載「.git」 – ordnungswidrig 2011-01-27 12:33:37

+0

我正在使用cygwin到linux並且有同樣的問題。我創建了遠程回購作爲共享,並能夠在本地克隆它。但現在我無法將它推回中央服務器。 - 即使是一個基本的「git push」,也可以從repo內部踢出完整的「git:'/path/to/remote/repo.git/'不是git命令,參見git --help。」 – Eddie 2011-03-03 20:38:25

回答

0

嘗試指定的協議明確(這裏SSH),使用避免了「:」用戶@主機部分,並且本地路徑(看看在git fetch man page描述的URL)之間:

url = ssh://[email protected]/C:/Git_Repository/.git 

換句話說,爲這種路徑避免scp syntax

+0

我曾嘗試過ssh url。但結果是一樣的。 git:'/Git_Repository/.git'不是git命令。參見'git --help'。 如果目錄在C:/ – Judarkness 2010-03-31 08:42:45

-1

怎麼樣

git push file:///\\<machine-ip>/<share-remote-repo>/ 
+0

fatal:'// /Git_Repository/.git'似乎不是git,那麼ssh url的正確用法應該是ssh://[email protected]/Git_Repository/.git庫。 它不工作... :( 我認爲這個URL是爲本地目錄,但仍然感謝 – Judarkness 2010-03-31 09:29:13

+0

你需要共享遠程回購,並儘量不要在路徑的末尾添加.git – gath 2010-04-01 06:30:09

+0

我試圖從路徑末尾刪除.git,但它不起作用 – Judarkness 2010-04-01 06:41:27

2

解決了!

運行此命令在本地:

git config --global remote.origin.receivepack "git receive-pack" 

,然後將本地倉庫內只運行

git push origin master 

或者你可以追加recieveoack命令每推

git push --receive-pack='git receive-pack' 
+0

Pierre的更多信息,請參閱https://github.com/msysgit/msysgit/issues/16 – 2012-05-26 20:49:05