[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT - di nuovo] consiglio su uso di git.



On 12/08/18 17:10, Gollum1 wrote:

> vado su uno dei tre repository locali, e lo aggancio come remote al
> repository locale, e ci paccio un push... a quel punto ho il
> repository locale con tutti i commit del primo dei repository locali
> vecchi... faccio così anche per gli altri due, committando di volta in
> volta, e così facendo dovrebbe fare anche i merge, quando faccio i
> push da ogni repository vecchio... oppure sto sbagliando ancora la
> prospettiva?

Provo a buttare giù una soluzione.

Crei una cartella in locale, la trasformi in un git repo (git init).

Registri lo stesso progetto su github e su bitbucket. Aggiungi i due
remote al progetto locale:

git remote add origin ssh://bitbucket.org/...
git remote add public ssh://github.com/...

Decidi di usare bitbubket come "repo di sviluppo" e github per le
release pubbliche.

git checkout master  # non dovrebbe fare niente perché ci sei già

git push -u origin master # collega master locale a master su bitbucket

git checkout -b public # crea un nuovo branch "public"

git push -u public master
# collega il branch public locale al branch master su gtihub

git checkout master # torna a master


Con questo si conclude il setup iniziale. Da qui in avanti parliamo di
sviluppo corrente.


git checkout nuova-feature # crea un nuovo branch per lo sviluppo

loop {
 edit file
 git commit file
}

git checkout master # torna in master

git merge nuova-feature #merge delle modifiche in master

git push # pusha master su bitbucket

git checkout nuova-feature # torna al branch

git rebase -i public

Ti apre un editor con la lista dei commit, ognuno con "pick" di fronte.
Cambia tutti i "pick" TRANNE IL PRIMO con "squash" (o solo "s", mi pare.
Te lo dice lui in un commento mentre fai l'edit).
Puoi anche cambiare il commit message del primo, se vuoi.
Salva e chiudi.

git checkout public # torna al branch public

git merge nuova-feature # merge del branch squashato

git push # pusha le modifiche su github


C'è un po' di lavoro manuale da fare ogni volta, e devi stare attento a
non fare casini coi branch, ma se ci sviluppi solo tu è fattibile.

Ricordati che git è un sistema distribuito. Ogni branch può avere
collegati zero o più remote totalmente distinti dagli altri.
O può anche non avere remote collegati, e decidi di volta in volta dove
pushare le modifiche (il che può portare a casini enormi :)

Bye.


Reply to: