2011-12-19 133 views
3

我已經在我用作媒體中心/備份服務器的Ubuntu盒子上通過ssh設置了一個git repo。疑難解答git pull

的步驟我把爲:

cd repos 
git init <repoName> 
cd <repoName> 
git config --bool core.bare true 

我已經能夠成功地推動並從由TortoiseGit我的臺式機和筆記本電腦,但一個git拉帶拽通過SSH回報:

fatal: /usr/lib/git-core/gitpull cannot be used without a working tree. 

我對terminal/ssh非常陌生,所以任何幫助都將不勝感激!

+0

順便說一句,你可以做'git的初始化--bare myrepo'節省了一步都有。 – 2011-12-19 18:43:08

回答

4

你必須推到裸露的回購。拉不能工作,因爲它需要一個工作目錄來合併,這就是你看到的錯誤信息。

因此,設置一個遠程回購倉庫,你將會從這個回收倉庫中推出。

PS:創建一個裸露的回購協議,最理想的方式是做git init --bare <reponame>

+0

謝謝你的答案。我想我需要研究定期回購和裸回購之間的區別,看看爲什麼我首先使用裸回... – 2011-12-19 18:58:35

+0

現在我記得原因: ! [遠程拒絕]主 - >主(分支目前已檢出) 錯誤:無法將某些文件推送到'ssh:// – 2011-12-19 19:03:01

+0

@ Bms85smb - 是的,標準做法是將回購推送到裸機。 – manojlds 2011-12-19 19:05:17

1

裸倉庫沒有工作樹。 git pull在功能上與git fetch相同,然後是git merge,並且要進行合併,您必須有一個工作樹(以防需要排除衝突)。

+0

謝謝<我不認爲我想要使用裸回購。我只用它,因爲我將其作爲解決我遇到的推送問題的解決方案(請參閱我對manojlds的評論)。 – 2011-12-19 19:07:37