Note: Due to technical difficulties, the Archives are currently not up to date.
GMANE provides an alternative service for most mailing lists. c.f. bug 424647
List Archive: gentoo-docs-it
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 ;)
|
|