Vai al contenuto

Gestione Branch in Xcode


Sank

Messaggi raccomandati

ragazzi mentre andavo avanti nello studio della programmazione di app mi è sorto un dubbio, ma non si può creare una versione dell'app modificare quella, testarla e se non dovesse funzionare tornare con un click a quella precedente? 

cercando su internet ho capito che questa cosa esiste su Xcode e sta nel source control e devi creare e gestire le Branch, ma il problema è come si usano?

io anche cercando su internet non sono riuscito a trovare nessuna guida che spiegasse come si può utilizzare e quali sono le sue potenzialità. 

Voi sapete dirmi qualcosa? E' una cosa utile, secondo me molto, secondo voi?

Link al commento
Condividi su altri siti

si chiamano sistemi di versioning.

quasi tutte le aziende usano git, moltissime da linea di comando... sembra difficile ma non lo è (almeno non le basi), si basa praticamente su 3 comandi:

git add + file da aggiungere (se vuoi aggiungerli tutti usa il .   )

git commit + messaggio di commit (che non può essere vuoto)

git push (se vuoi mettere i tuoi commit su un server remoto non locale)

git checkout + nome branch per creare un nuovo "ramo di sviluppo"

git reset + nome commit (che è un'hash) per tornare ad un commit precedente. Il più recente è sempre HEAD

 

L'idea di base è committare spesso (perchè ci vuole mezzo secondo) in modo da poter ripristinare un commit precedente il più recente possibile.

 

In azienda è molto utile perchè i progetti sono spesso grandi e ci vuole parecchio a fare copie di backup, mentre git è velocissimo perchè è scritto in c e copia solo le modifiche applicando xdelta ai file.

Detto questo è necessario capire che su git ci va solo il tuo codice, niente librerie esterne, niente file pesanti... solo puro e semplice codice con le istruzioni nel readme per scaricarsi tutte le librerie che servono per far funzionare il progetto.

 

A livello casalingo trovo molto più comodo un semplice sistema di backup (tipo time machine, su windows e linux c'è qualcosa di simile integrato nel sistema e ci sono anche programmi che fanno backup incrementali), che fa la copia di tutti i file ogni tot ore/minuti. Dovendo fare solo una copia locale e non dovendo lavorare in team è tutto molto più immediato ed automatico (fare i commit git richiede il mio intervento, time machine gira anche se io non sono al computer).

Personalmente ti consiglio di vederti comunque git (è utile anche solo per usare le librerie di altre persone su github), ma di provare a vedere come ti trovi più comodo per il resto

Link al commento
Condividi su altri siti

ok allora git so come funziona perché  lo sto usando per un progetto con dei miei amici e quindi lavorando in team devo fare il git. 

 

infatti cercavo una soluzione in locale, ma per time machine io uso un hard disk esterno e faccio il backup una volta a settimana. 

 

non c'è un modo per fare tipo una specie di git in locale in modo che salvo tipo la versione 1.0, poi lavoro alla 1.1 vedo che fa schifo e torno alla versione 1.0; tutto da locale naturalmente.

Link al commento
Condividi su altri siti

3 ore fa, Sank dice:

non c'è un modo per fare tipo una specie di git in locale in modo che salvo tipo la versione 1.0, poi lavoro alla 1.1 vedo che fa schifo e torno alla versione 1.0; tutto da locale naturalmente.

git è anche locale. se non fai push resta in locale.

Link al commento
Condividi su altri siti

11 ore fa, Lief dice:

git è anche locale. se non fai push resta in locale.

 ok allora scusami ti ripeto un attimo per vedere se ho capito prima di combinare danni.

 

se voglio caricare il master faccio così:

 

git add + file da aggiungere (se vuoi aggiungerli tutti usa il .   )

git commit + messaggio di commit (che non può essere vuoto)

 

se voglio creare un nuovo branch:

 

git checkout + nome branch per creare un nuovo "ramo di sviluppo"

 

ma se volessi fare il commit anche di questo branch come devo fare? sempre git commit?

e sopratutto se volessi far diventare questo branch il master?

 

mentre se volessi tornare ad un vecchio commit faccio

git reset + nome commit (che è un'hash) per tornare ad un commit precedente. Il più recente è sempre HEAD

 

scusami se ti chiedo conferma e delucidazioni ma l'ultima volta che o giocato con commit ho perso tutte le cose che avevo modificato nell'ultima settimana 

Link al commento
Condividi su altri siti

faccio prima a lasciarti questo link:

http://learngitbranching.js.org/

 

proprio come ti ho scritto però git lo trovo scomodo per uso casalingo. È ottimo quando bisogna lavorare in team.

 

In ogni caso per muoverti al nuovo branch basta che aggiungi -b al checkout durante la creazione... anzi quel che ti avevo scritto era leggermente errato. Per creare un nuovo branch si usa git branch + nome branch... checkout si usa per muoversi su un branch già esistente... Più che altro io uso sempre git checkout -b + nome branch quindi non ricordavo che esistesse un git branch.

 

Per committare sempre git commit.

Per l'ultima domanda ci sono più soluzioni.. guarda stackoverflow. Personalmente farei un merge con il master se volessi far diventare un branch master, l'idea è infatti che ogni ramo si unisca all'albero, non mi pare abbia senso far diventare albero un ramo.

 

Se vuoi tornare ad un vecchio commit come ti ho scritto git reset + nome del commit. Per avere i nomi dei commit puoi fare git log.

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...