clean-up
This commit is contained in:
parent
927380d089
commit
ae45a18e59
1 changed files with 33 additions and 20 deletions
|
@ -50,6 +50,7 @@ Il resto lo spiega meglio Wikipedia: https://it.wikipedia.org/wiki/Git%5F%28soft
|
|||
|
||||
* non è Subversion o CVS
|
||||
* non è un sistema di backup
|
||||
* un sistema per fare deploy (o magari sì, ma rifletteteci)
|
||||
|
||||
-----
|
||||
|
||||
|
@ -57,7 +58,7 @@ Il resto lo spiega meglio Wikipedia: https://it.wikipedia.org/wiki/Git%5F%28soft
|
|||
|
||||
*Git non avrà segreti per voi, una volta compreso...*
|
||||
|
||||
* ...il data model (objects, trees, commits, refs, tags, ...)
|
||||
* ...il data model (objects, blobs, trees, commits, refs, tags, ...)
|
||||
* ...il fatto che tutto è locale
|
||||
* ...che i commit sono in realtà snapshot, e non delta rispetto allo stato precedente
|
||||
* ...una qualche astrusa teoria a caso
|
||||
|
@ -82,7 +83,7 @@ Tutto vero, ma la sua user interface è un mezzo disastro.
|
|||
|
||||
---
|
||||
|
||||
## Le basi: prepariamoci
|
||||
## Le basi: prepariamo l'ambieo l'ambiente
|
||||
|
||||
$ git config --global user.name "Davide Alberani"
|
||||
$ git config --global user.email da@erlug.linux.it
|
||||
|
@ -118,7 +119,7 @@ Clonare un repository remoto esistente:
|
|||
|
||||
### Bonus track
|
||||
|
||||
* i repository remoti vengono creati con **--bare** e sono privi di working directory
|
||||
* i repository remoti vengono di norma creati con **--bare** e non hanno working directory
|
||||
* si può posizionare la directory .git in un altro path con **--separate-git-dir**
|
||||
|
||||
---
|
||||
|
@ -155,6 +156,8 @@ Committiamolo:
|
|||
|
||||
-----
|
||||
|
||||
## Le basi: add e commit
|
||||
|
||||
<br />
|
||||
|
||||
### Cosa è successo?
|
||||
|
@ -183,7 +186,7 @@ I commit hash sono generati partendo da: messaggio, committer, author, dates, tr
|
|||
### Bonus track
|
||||
|
||||
* .gitignore per ignorare certi file
|
||||
* è possibile abbreviarli, purché rimangano univoci.
|
||||
* è possibile abbreviare gli hash, purché rimangano univoci.
|
||||
* vedere https://blog.thoughtram.io/git/2014/11/18/the-anatomy-of-a-git-commit.html
|
||||
* e anche https://git-scm.com/book/it/v2/Git-Internals-Git-References
|
||||
|
||||
|
@ -205,9 +208,9 @@ Un tag è un puntatore ad un commit:
|
|||
|
||||
## Le basi: la history
|
||||
|
||||
$ git log [--stat] [-p] [--graph] [--decorate] [--color] [-2]
|
||||
$ git log [--stat] [--patch] [--graph] [--decorate] [--color] [-2]
|
||||
|
||||
Rappresenta la storia dei commit dal punto corrente (o da/a qualsiasi punto indicato).
|
||||
Rappresenta la storia dei commit fino al punto corrente (o da/a qualsiasi punto indicato).
|
||||
|
||||
Si può limitare agli ultimi N commit con **-N**
|
||||
|
||||
|
@ -264,6 +267,10 @@ Riportare un file modificato nell'ultimo stato committato/staged:
|
|||
|
||||
$ git checkout -- file
|
||||
|
||||
-----
|
||||
|
||||
## Aggiustare i danni: più forte
|
||||
|
||||
Ho fatto un casino nella working directory. Riportiamo tutto allo stato dell'ultimo commit:
|
||||
|
||||
$ git reset --hard HEAD
|
||||
|
@ -292,11 +299,15 @@ Eliminarne uno:
|
|||
|
||||
$ git stash drop stash@{0}
|
||||
|
||||
## Quando usarlo?
|
||||
|
||||
Ad esempio quando vogliamo passare ad un altro branch, accantonando le modifiche nella working directory.
|
||||
|
||||
---
|
||||
|
||||
## Storico dei cambiamenti: reflog
|
||||
|
||||
La history mostra solo i commit incluse in in branch.
|
||||
La history mostra solo i commit inclusi in un branch.
|
||||
|
||||
Per vedere tutto ciò che è successo:
|
||||
|
||||
|
@ -319,7 +330,7 @@ Servono a separare diversi filoni di sviluppo e ad integrare i contributi di alt
|
|||
|
||||
-----
|
||||
|
||||
## Branches: sperimentiamo!
|
||||
## Branches: creazione
|
||||
|
||||
Creare un branch:
|
||||
|
||||
|
@ -333,6 +344,10 @@ Cancellare un branch locale:
|
|||
|
||||
$ git branch -d [--force] fix/bug-123
|
||||
|
||||
-----
|
||||
|
||||
## Branches: spostiamoci
|
||||
|
||||
Spostarsi su un branch:
|
||||
|
||||
$ git checkout fix/bug-123
|
||||
|
@ -347,7 +362,7 @@ Creare e spostarsi in un singolo comando:
|
|||
|
||||
* **master** è solamente un default
|
||||
|
||||
* fate caso all'asterisco, è il branch corrente
|
||||
* fate caso all'asterisco: è il branch corrente
|
||||
|
||||
* dare nomi significativi; prefissi: bugfix/, fix/, improvement/, feature/, task/
|
||||
|
||||
|
@ -359,7 +374,7 @@ Creare e spostarsi in un singolo comando:
|
|||
|
||||
---
|
||||
|
||||
## Spostarsi
|
||||
## Spostarsi tra i commit
|
||||
|
||||
Salire di 3 livelli, seguendo sempre il primo parent commit (in caso di merge):
|
||||
|
||||
|
@ -375,7 +390,7 @@ Salire di un livello, seguendo il secondo parent commit (in caso di merge):
|
|||
|
||||
* cosa è HEAD: reference al branch (o commit) corrente
|
||||
* questi operatori sono concatenabili: HEAD~~^2
|
||||
* double/tripe dot ranges: git log master..branch; git log --left-right master...branch
|
||||
* double/tripe dot ranges: git log master..branch; git log --left-right master...branch: https://stackoverflow.com/questions/7251477/what-are-the-differences-between-double-dot-and-triple-dot-in-git-dif
|
||||
|
||||
---
|
||||
|
||||
|
@ -394,7 +409,7 @@ Partendo da master:
|
|||
|
||||
### Cosa è successo?
|
||||
|
||||
fast-forward! master era più indietro rispetto a fix/bug-123, e quindi abbiamo semplicemente spostato master.
|
||||
fast-forward! master era più indietro rispetto a fix/bug-123, e quindi abbiamo semplicemente spostato il puntatore master.
|
||||
|
||||
Non è stato neppure creato un nuovo commit.
|
||||
|
||||
|
@ -481,7 +496,7 @@ Tutti i commit specifici di fix/bug-123 sono cambiati.
|
|||
|
||||
### Quando usarlo?
|
||||
|
||||
A spostare più commit e/o a porsi nella condizione di fare un merge pulito, mantenendo una history lineare.
|
||||
Quando dovete spostare più commit e/o per porvi nella condizione di fare un merge pulito, mantenendo una history lineare.
|
||||
|
||||
<br />
|
||||
|
||||
|
@ -575,14 +590,12 @@ Questo perché se qualcuno sta lavorando sullo stesso branch remoto, romperete t
|
|||
|
||||
## Idee sparse
|
||||
|
||||
Gestire file grandi:
|
||||
* https://git-lfs.github.com/
|
||||
* https://git-annex.branchable.com/
|
||||
* gestire file grandi: https://git-lfs.github.com/
|
||||
* gestire file grandi (alternativa): https://git-annex.branchable.com/
|
||||
* gestire la propria directory /etc: etckeeper
|
||||
* gestire repository multipli: https://source.android.com/source/using-repo
|
||||
|
||||
Gestire la propria directory /etc:
|
||||
* etckeeper
|
||||
|
||||
<br />
|
||||
-----
|
||||
|
||||
## Pezzi mancanti
|
||||
|
||||
|
|
Loading…
Reference in a new issue