2011-12-11 57 views
5

感謝您的任何幫助。git推從本地機器到服務器工作,但不是服務器上的文件

我在本地機器(mac osx lion)上有一個git repo,我試圖用Ubuntu將它推送到ec2實例。

在EC2服務器我做:

cd /u/apps 
mkdir stuff.git 
cd stuff.git 
git init --bare 
git update-server-info 

在我的本地機器,我已經拿到了文件夾「東西」,這只是有一個文本文件。

cd stuff 
git init 
git add . 
git commit -m "initial commit" 
git remote add origin [email protected]:/u/apps/stuff.git 
git push origin master 

Counting objects: 6, done. 
Delta compression using up to 2 threads. 
Compressing objects: 100% (3/3), done. 
Writing objects: 100% (4/4), 477 bytes, done. 
Total 4 (delta 0), reused 0 (delta 0) 
To [email protected]:/u/apps/stuff.git 
95d5ae5..4b5a30f master -> master 

一切似乎都很好,但是當我檢查服務器時,沒有添加名爲'hello.txt'的新文本文件。我看到的全部是:

/u/apps/stuff.git$ ls 
branches config description HEAD hooks info objects refs 

對我可能忽略了什麼有什麼想法?

乾杯

回答

6

是的,你沒有看到文件,因爲你創造了一個裸露的回購協議(git init --bare),因爲它應該是。裸回購沒有工作樹。

如果您試圖從服務器上的裸存儲庫中獲取特定路徑的文件,則必須設置接收後掛接並將其簽出。後收到鉤將有類似:

GIT_WORK_TREE=/path/where/to/checkout git checkout -f 

(以上也可手動,如果你想在服務器上運行回購)

+0

嘿manojlds - 我想要做的對面,將文件從本地機器推送到我的服務器,該服務器具有裸回購,而不是從服務器獲取文件。不管怎麼說,多謝拉。 – Dandan

+0

@丹丹 - 呃,這就是我的意思。 – manojlds

+0

對不起兄弟,我明白你的意思。這似乎已經成功了。到目前爲止,我已經加上了所提到的額外步驟,這將成爲設置和推送文件從本地機器到服務器的正常方式嗎? – Dandan

相關問題