33 lines
1.6 KiB
Markdown
33 lines
1.6 KiB
Markdown
<!-- File: 00-introduzione-git.md -->
|
||
|
||
# git-cheatsheet-ita
|
||
|
||
Usiamo **Git** come sistema di versionamento distribuito.
|
||
Chi arriva da **Subversion (SVN)** deve tenere a mente alcune differenze chiave:
|
||
|
||
- In Git hai **sempre una copia completa del repository in locale**
|
||
- Le modifiche passano da tre "stati":
|
||
1. **Working directory** – i file sul tuo disco
|
||
2. **Staging area (index)** – le modifiche pronte per il commit (`git add`)
|
||
3. **Repository locale** – la storia ufficiale sul tuo PC (`git commit`)
|
||
- Il server remoto (es. GitHub/GitLab/Bitbucket) è solo un altro **remote** (di solito `origin`)
|
||
|
||
### Mappa mentale SVN → Git
|
||
|
||
- `svn checkout URL` → `git clone URL`
|
||
- `svn status` → `git status`
|
||
- `svn diff` → `git diff`
|
||
- `svn add file` → `git add file`
|
||
- `svn commit` → **NON** manda al server: in Git il `commit` è locale
|
||
- `svn update` → `git pull` (o meglio: `git fetch` + `git merge`)
|
||
- `svn commit` + sync → in Git è `git commit` + `git push`
|
||
|
||
Nei file seguenti (directory [**docs**](./docs)) vedremo:
|
||
|
||
1. Configurazione utente (`git config`). [🔗](./docs/01-configurazione-utente.md)
|
||
2. Strutta base del repository e `git clone`. [🔗](./docs/02-clone-e-struttura-repo.md)
|
||
3. Workflow base di lavoro giornaliero. [🔗](./docs/03-workflow-giornaliero-commit-push.md)
|
||
4. Approfondimento differenze tra `fetch`, `merge` e `pull`. [🔗](./docs/04-fetch-merge-pull.md)
|
||
5. Accenno al **Driessen branching model** (Git Flow). [🔗](./docs/05-driessen-branching-model-gitflow.md)
|
||
6. Accenno alla **risoluzione dei conflitti**. [🔗](./docs/06-gestione-conflitti-merge.md)
|