2011-12-14 13 views
6

Ho (finalmente) convinto il mio manager per permetterci di impostare il controllo della versione, e ho fatto qualche ricerca negli ultimi giorni e ho deciso di git. In ogni caso ho trovato un tutorial qui http://toroid.org/ams/git-website-howto in una configurazione di base, che invierà le modifiche al repository remoto. Questo funzionerebbe alla grande per la nostra azienda.git basic setup

qui sono i passi che ho passato

scatola locale

cd /website 
git init 
git add . 
git commit -m "Initial commit into git" 

server di

cd /var/git/ 
mkdir website.git 
cd website.git 
git init --bare 

mkdir /var/www/website 

cat > hooks/post-receive 

#!/bin/sh 
GIT_WORK_TREE=/var/www/website git checkout -f 

chmod + x ganci/post-ricezione

Box locale

git remote add web ssh://[email protected]/var/git/website.git 
git push web +master:refs/heads/master 

Ora in cui faccio la spinta ottengo l'errore "Questa operazione deve essere eseguito in un albero di lavoro" Questo è in arrivo dal gancio post-ricezione. So che mi manca un passaggio ma non sono sicuro di cosa sia esattamente ...

+0

mi piacerebbe provare a rimuovere il gancio post-ricezione, facendo la mia spinta iniziale, e poi sostituendo il gancio post-ricezione. Forse il gancio non vuole essere eseguito su un repository senza alcun commit? – antlersoft

+1

Hai valutato https://github.com/sitaramc/gitolite? In seguito potresti voler organizzare i tuoi rami: http://nvie.com/posts/a-successful-git-branching-model/ – tback

+0

Non ho tempo di trovare un duplicato, ma probabilmente ce ne sono una dozzina Qui. Prova a cercare domande simili. – Cascabel

risposta

2

Suppongo che la directory di lavoro website sia vuota. Quindi, il tuo git add . non aggiunge nulla e il prossimo commit non crea un nuovo commit.

Per generare il ramo master, è necessario completare almeno un commit, con almeno un file.

Nella casella locale, fare

touch empty 
git add empty 
git commit -m "Initial commit into git" 
git push web