Nella produzione, mantengo due siti - beta e release. Ogni punta a una directory diversa tramite un link simbolico (per esempio)come faccio a distribuire più sportelli a diverse directory tramite git push?
beta_public_html -> /home/scott/myapp/trunk/public
public_html -> /home/scott/myapp/branches/1.2.3/public
Sono un lungo tempo svn utente, passare a git. Sono abituato a distribuire tramite svn update e cambiare il soft link su un nuovo ramo, le cose sono piuttosto semplici.
Ora sto muovendo a git. Ho ancora bisogno di avere i due soft link (si tratta di un'applicazione Rails utilizzando passeggeri), anche se ora voglio che puntano a due diversi rami Git ("beta" e "rilascio", dico). E voglio essere in grado di aggiornarli tramite git push (o git pull).
Domanda Parte 1: Non sono sicuro che il modo migliore per fare questo.
Il modo in cui avevo iniziato a fare era di distribuire solo a due diversi telecomandi, per esempio
git push ssh://[email protected]/home/scott/myapp-beta beta
git push ssh://[email protected]/home/scott/myapp-release release
Ma questo non funziona perché push non aggiorna l'albero di lavoro per impostazione predefinita.
Quindi vado nelle directory remote ed eseguo git reset --hard la prima volta, e tira l'albero di lavoro. Ma spingo ancora e non riesco a far apparire la nuova spinta - rimane solo all'inizio.
(BTW, nota che non riesco a spingere su "myapp-beta.git" - che non riesce, devo premere sul nome della directory.Mi sono preoccupato che questo è parte del problema, ma io non so cosa ho fatto di sbagliato qui.)
Quindi, se la risposta alla domanda 1 è che il mio metodo va bene, domanda parte 2: cosa c'è di sbagliato in ciò che sto effettivamente facendo? Se ci sono dei ganci che dovrei usare, qualcuno può indicarmi?
(Una risposta alla domanda 1 che dice "eseguito questi sette passaggi manuali" non sarà una risposta terribilmente utile, visto che svn checkout + ln -s sono due passi.)
Grazie. Voglio tornare a scrivere il codice.
non ti piace il controllo del codice sorgente? – knittl
Il controllo del codice sorgente è un mezzo per un fine, non un fine in sé. –
ok, non stavo cercando di iniziare una conversazione sull'amore per il controllo del codice sorgente. Rimozione del commento di throwaway. – scottru