[Linux-Biella] Git server

Paolo Ciarrocchi paolo.ciarrocchi a gmail.com
Dom 16 Nov 2008 20:44:46 CET


2008/11/16 Daniele (Mastro) <daniele.bilug a gmail.com>:
> Paolo Ciarrocchi ha scritto:
>> Bien.
>> Su win che tipo di installazione di git usi?
>
> non l'ho detto?
> github

Non so cosa sia. Conosco solo www.github.com che è un hoster di repository git.
Io con win uso questo:
http://code.google.com/p/msysgit/downloads/list

>>> con le gui però non riesco a farlo funzionare (almeno da macchina window)
>>
>> Quali gui e quali problemi hai?
>
> git gui

Ehi, dimmi qualcosa in piu :-)
Che problema hai con git gui?

> ho guardato anche gitk su linux (non so se c'è per win) e non era un
> gran che manco quella

gitk serve per visualizzare la storia di un repository, serve per
visualizzare i commit, le interazioni con altri repository.
Non serve per fare modiche.

> semplicemente non ho trovato il modo, da git gui, di "vedere" cosa c'era
> sul repository remoto e di conseguenza neppure quali file nuovi c'erano
> sul repository che non erano in locale
>
>>> il mio ssh non è su porta standard (22)
>>>
>>> potrebbe forse dipendere anche da questo?
>>
>> Potrebbe. More info please :-)
>
> che altra info posso darti?
> ho un server ssh su una porta non standard, es. 12345 (una vale l'altra)
> server ssh che autentica solo ed esclusivamente tramite chiavi ssh

OK. come provi a connetterti da win?

>> Spiega meglio....
>> git fetch per sincronizzare il "git database"
>> git pull per fare "fetch+merge"
>
> hum...
> ci sono 2000 comandi e non mi è chiaro un "tipico" utilizzo
>
> io avevo capito che andava fatto come ti ho spiegato sotto...

Tu sotto mi hai fatto un esempio di lavoro in locale.
Assolutamente corretto.

Poi ti sei chiesto come fare a vedere le modifiche fatte da un'altra
persona in un altro repository, sbaglio?


> studierò meglio
> non sarebbe male una lista di tutti i comandi con spiegato a cosa servono :)
>
>> http://book.git-scm.com/5_advanced_branching_and_merging.html
>>
>> oppure usando git mergetool per invocare un tool esterno.
>
> leggerò
> tool esterno = ?

kdiff3 per esempio.

>> Meglio se ti abitui a usare le versioni senza -
>
> perché?

Perche' quelle con il "-" saranno deprecate.

>>> git-commit -a -m "..."
>>
>> git commit -a -m "blablsalal"
>> oppure fai tutto con
>> git gui
>
> come che non ho trovato il corrispondente di git commit?

La finestra principale e' l'equivalente di git commit :-)

Prova quanto segue:

----
Paolo a CASA ~
$ mkdir daniele

Paolo a CASA ~
$ cd daniele/

Paolo a CASA ~/daniele
$ git init
Initialized empty Git repository in c:/Documents and Settings/Paolo/daniele/.git
/

Paolo a CASA ~/daniele
$ touch file.txt

Paolo a CASA ~/daniele
$ git add file.txt

Paolo a CASA ~/daniele
$ git commit -a -m "Primo commit"
Created initial commit f9dee78: Primo commit
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file.txt

Paolo a CASA ~/daniele
$ echo "Guarda cosa succede ora Daniele :-)" >> file.txt

Paolo a CASA ~/daniele
$ git gui
----

Seleziona file.txt  e vedrai nella finestra in alto il contenuto della
patch, in quella in basso andrai a scrivere il messaggio di log
(equivalenete di git commit -m "messaggio di log").
Chiaro?

>>> git-push
>>
>> Questo è chiaro cosa fa?
>
> probabilmente no
> pensavo che inviasse sul repository principale le modifiche allineando
> ciò che ho in locale (e ho committato) con il repo

Corretto.

>> Faccio solo fetch e/o pull
>
> fetch che fa?

Sincronizza il tuo db con uno remoto senza aggiornare la working directory.

>>> se ci lavora altra gente però dovrei avere un modo per conoscere i
>>> cambiamenti che sono stati fatti
>>> e sapere come risolverli
>>
>> Un po' ho risposto, fammi domande piuà specifiche e ti rispondo.
>
> a quest'ultima cosa non mi hai risposto.. si fa con il fetch?

Si, ti ho fatto un esempio in qui ti mostro come vedere il lavoro
fatto da un'altra persona su un'altro repository.

>> In generale per vedere le modifiche fatte da un altro utente ne fai il
>> merge e poi vai di:
>> da http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html
>
> leggerò
>
>> --8<--
>> Alice can peek at what Bob did without merging first, using the
>> "fetch" command; this allows Alice to inspect what Bob did, using a
>> special symbol "FETCH_HEAD", in order to determine if he has anything
>> worth pulling, like this:
>>
>> alice$ git fetch /home/bob/myrepo master
>> alice$ git log -p HEAD..FETCH_HEAD
>>
>> This operation is safe even if Alice has uncommitted local changes.
>> The range notation HEAD..FETCH_HEAD" means "show everything that is
>> reachable from the FETCH_HEAD but exclude anything that is reachable
>> from HEAD. Alice already knows everything that leads to her current
>> state (HEAD), and reviewing what Bob has in his state (FETCH_HEAD)
>> that she has not seen with this command
>>
>> If Alice wants to visualize what Bob did since their histories forked
>> she can issue the following command:
>>
>> $ gitk HEAD..FETCH_HEAD
>> --8<--
>
> e se volessi fare queste cose da un'interfaccia grafica?

Non credo che git gui abbia integrato il fetch, sicrumante puoi fare push.

Ma il tutto è molto semplice:
git fetch repository remoto
gitk HEAD..FETCH_HEAD

Per vedere graficamente cosa hai "scaricato", quello che puoi
"fondere" con un merge.

> magari con un plugin per eclipse? (ho in mente quello per svn che è ben
> fatto)
>
>> Ricorda che puoi usare git svn per interagire con un repository svn :-)
>
> da quel che ho capito io si git-svn serve ad usare un repository svn con
> un client git

Si.

> a me servirebbe l'opposto
> usare un repository git da un client svn (così da poter usare tutti i
> tool grafici e non per svn)

Non esiste.

Esite pero' un plugin git per eclipse (sviluppato ora da Google).

Ciao,
-- 
Paolo
http://paolo.ciarrocchi.googlepages.com/


Maggiori informazioni sulla lista Linux