32 lines
1.3 KiB
Markdown
32 lines
1.3 KiB
Markdown
<!-- File: 00-introduzione-git-meridiana.md -->
|
||
|
||
# Git in Meridiana – Introduzione (per chi viene da Subversion)
|
||
|
||
In Meridiana 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 vedremo:
|
||
|
||
1. Configurazione utente (`git config`)
|
||
2. Workflow base di lavoro (clone, commit, push)
|
||
3. Differenza tra `fetch`, `merge` e `pull`
|
||
4. Accenno al **Driessen branching model** (Git Flow)
|
||
|