Gentoo Archives: gentoo-docs-it

From: Daniele Segato <daniele.segato@×××××.com>
To: gentoo-docs-it@l.g.o
Subject: [gentoo-docs-it] howto su git - Note sul PDF
Date: Thu, 02 Feb 2012 12:22:01
Message-Id: 4F2A80AA.9090707@gmail.com
Ciao,

stavo dando un'occhiata al PDF di howto per vedere se c'era qualcosa che 
mi serviva

ad un certo punto c'è questo:

*****
Materiale superfluo
Può darsi che sia necessario inserire nel proprio repository del 
materiale estraneo.
Ad esempio:
$ echo "Correggere gli errori di ortografia" > my_personal_TODO
In tal caso, per non "sporcare" il repository git, si può usare il file 
.gitignore
$ echo "my_personal_TODO" >> .gitignore
che contiene il materiale che deve essere ignorato da git.
*****

in realtà non è il massimo fare quanto qui consigliato

il file .gitignore è fatto per essere __condiviso__ con tutti gli altri 
sviluppatori (traduttori nel nostro caso)


per ignorare file solo nella nostra copia locale è meglio agire su:

.git/info/exclude

si usa allo stesso modo:

echo "my_personal_TODO" >> .git/info/exclude

ancor meglio se l'ignore è messo con il path assoluto:

echo "/my_personal_TODO" >> .git/info/exclude

/ si riferisce alla root del progetto, dove si trova anche il PDF di cui 
parlo




sui merge io consiglio di lanciare questo comando:

git config --global merge.conflictstyle diff3


a cosa serve?

   / --- F
C
   \ --- B


F = ultimo commit dell'utente Foo
B = ultimo commit dell'utente Bar
C = ultimo commit comune a Foo e Bar


questa situazione si verifica spesso quando Foo e Bar stanno lavorando 
contemporaneamente

partono da una base comune (che sta su gitorious) e lavorano sul proprio PC.


Se Foo fa push su gitorious (pubblica le modifice) quando toccherà a Bar 
fare il push verrà fatto un merge.


Git risolve i merge da solo fintanto che la modifica non avviene sullo 
STESSO FILE e sulle STESSE RIGHE DEL FILE.


facendo un'esempio:


questo è C
<p>
Gentoo è una distribuzione versatile e magnifica!
</p>


questo è F:
<p>
Gentoo è sempre stata una distribuzione versatile e magnifica!
</p>


questo è B:
<p>
Gentoo è una distribuzione versatile e magnifica da personalizzare!
</p>





Foo fa il push, quindi su gitorious finisce la versione F


Bar fa il pull e si trova un conflitto

la risoluzione del conflitto deve tener conto sia delle modifiche di Foo 
che di quelle di Bar


Normalmente git vi mostra questo conflitto così:

<p>
<<<<<<< HEAD
Gentoo è una distribuzione versatile e magnifica da personalizzare!
=======
Gentoo è sempre stata una distribuzione versatile e magnifica!
 >>>>>>> foo
</p>


se non vi ricordate com'era C potrebbe non essere facile capire cosa si 
vuole ottenere

con il comando dato sopra:
git config --global merge.conflictstyle diff3


si ottiene invece questo:
<p>
<<<<<<< HEAD
Gentoo è una distribuzione versatile e magnifica da personalizzare!
||||||| merged common ancestors
Gentoo è una distribuzione versatile e magnifica!
=======
Gentoo è sempre stata una distribuzione versatile e magnifica!
 >>>>>>> foo
</p>


si vede anche la versione "in mezzo" ed è più facile capire che il 
risultato dev'essere:

<p>
Gentoo è sempre stata una distribuzione magnifica da personalizzare!
</p>


altre configurazioni che trovo utili:

# definizione di qualche alias
git config --global alias.st status
git config --global alias.ci commit
git config --global alias.co checkout
git config --global alias.br branch

# questo
git config --global alias.diffword 'diff --word-diff'

dopo questi alias
git st == git status

(per scriver di meno)

e

git diffword mostra le differenze "parola per parola" anziché "riga per 
riga"

è equivalente a scrivere git diff --word-diff



ci sarebbe poi tutta una serie di consigli per migliorare l'utilizzo da 
linea di comando ma per ora mi fermo qui :)


spero di essere stato d'aiuto ;)

Replies

Subject Author
Re: [gentoo-docs-it] howto su git - Note sul PDF Alessandro Candini <canduc17@×××××.com>
[gentoo-docs-it] Re: howto su git - Note sul PDF Daniele Segato <daniele.segato@×××××.com>
Re: [gentoo-docs-it] howto su git - Note sul PDF Maurizio Camisaschi <camisaschi@×××××.it>