Differenze tra le versioni di "Git"
Da WikiSitech.
Vai alla navigazioneVai alla ricercam (→Panoramica) |
|||
(20 versioni intermedie di 4 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
− | + | = GIT = | |
Git è un sistema di controllo di versione libero e open source distribuito. | Git è un sistema di controllo di versione libero e open source distribuito. | ||
+ | ==Panoramica== | ||
+ | Vediamo alcuni concetti fondamentali che costituiscono le basi di Git: | ||
+ | # - [[Basi di Git|Basi di Git]] | ||
+ | # - [[I tre stati dei file|I tre stati dei file]] | ||
+ | # - [[Struttura Repository Git|Struttura di un repository Git]] | ||
+ | # - [[Registrare i Cambiamenti nel Repository|Registrare i Cambiamenti nel Repository]] | ||
− | === | + | ==Operatività== |
− | |||
− | + | *Importazione nel workspace corrente di un progetto esistente, eseguendo un [[Clone Remote Repository Git|Clone]] | |
+ | *Importazione nel Repository Remoto Git di un progetto esistente [[Aggiungere_un_progetto_ad_un_repository_remoto|Aggiungere un progetto]] | ||
+ | *Impostare le regole di esclusione da considerare nelle operazioni Git [[.gitignore file|gitignore]] | ||
+ | *Esempi di [https://www.youtube.com/watch?v=KfeqnernMmE merge] con git | ||
− | == | + | == Riferimenti esterni == |
− | + | * Su HTML.IT una serie di [http://www.html.it/articoli/git-in-pochi-passi-2/ articoli] molto ben fatti... | |
− | + | == Migrazione progetti da un repository ad un altro == | |
+ | Se si vuole spostare un insieme di progetti da un repository ad un altro, mantenendo la history (ma solo del ramo master e senza tag di versioni), è possibile utilizzare questa procedura: | ||
+ | # clonare il repository di partenza. NB: la procedura è distruttiva rispetto alla copia in locale, per cui non utilizzare un repository puntato da workspace o che si vuole mantenere sul disco. | ||
+ | # aprire la linea di comando e spostarsi nella directory del repository | ||
+ | # eseguire '''git remote rm origin''' (questo rimuove il collegamento al repository remoto) | ||
+ | # eseguire '''git filter-branch --index-filter "git rm --cached -qr --ignore-unmatch -- . && git reset -q $GIT_COMMIT --''' ''<progetto1> <progetto2> <progettoN>'' '''" --prune-empty -- --branches=master''' <br />es: git filter-branch --index-filter "git rm --cached -qr --ignore-unmatch -- . && git reset -q $GIT_COMMIT -- com.netsitech.rcp.caricese.paper.indexer com.netsitech.rcp.caricese.paper.indexer.analyzer com.netsitech.rcp.caricese.paper.indexer.dnd com.netsitech.rcp.caricese.paper.indexer.feature com.netsitech.rcp.caricese.paper.indexer.generator com.netsitech.rcp.caricese.paper.indexer.key com.netsitech.rcp.caricese.paper.indexer.legacy com.netsitech.rcp.caricese.paper.indexer.model com.netsitech.rcp.caricese.paper.indexer.releng com.netsitech.rcp.caricese.paper.indexer.ws" --prune-empty -- --branches=master | ||
+ | # se al termine del comando precedente sono presenti nella cartella altri progetti, oltre a quelli che si vuole migrare, eliminarli | ||
+ | # rinominare la cartella come il nuovo repository | ||
+ | # effettuare il comando push (anche da interfaccia grafica o eclipse) e configurare il repository remoto con quello desiderato. | ||
− | + | Nota: se il progetto o i progetti si trovano in una directory, per portarli sulla radice è possibile usare questo comando: git filter-branch --subdirectory-filter <directory> -- --all |
Versione attuale delle 16:49, 30 dic 2019
Indice
GIT
Git è un sistema di controllo di versione libero e open source distribuito.
Panoramica
Vediamo alcuni concetti fondamentali che costituiscono le basi di Git:
- - Basi di Git
- - I tre stati dei file
- - Struttura di un repository Git
- - Registrare i Cambiamenti nel Repository
Operatività
- Importazione nel workspace corrente di un progetto esistente, eseguendo un Clone
- Importazione nel Repository Remoto Git di un progetto esistente Aggiungere un progetto
- Impostare le regole di esclusione da considerare nelle operazioni Git gitignore
- Esempi di merge con git
Riferimenti esterni
- Su HTML.IT una serie di articoli molto ben fatti...
Migrazione progetti da un repository ad un altro
Se si vuole spostare un insieme di progetti da un repository ad un altro, mantenendo la history (ma solo del ramo master e senza tag di versioni), è possibile utilizzare questa procedura:
- clonare il repository di partenza. NB: la procedura è distruttiva rispetto alla copia in locale, per cui non utilizzare un repository puntato da workspace o che si vuole mantenere sul disco.
- aprire la linea di comando e spostarsi nella directory del repository
- eseguire git remote rm origin (questo rimuove il collegamento al repository remoto)
- eseguire git filter-branch --index-filter "git rm --cached -qr --ignore-unmatch -- . && git reset -q $GIT_COMMIT -- <progetto1> <progetto2> <progettoN> " --prune-empty -- --branches=master
es: git filter-branch --index-filter "git rm --cached -qr --ignore-unmatch -- . && git reset -q $GIT_COMMIT -- com.netsitech.rcp.caricese.paper.indexer com.netsitech.rcp.caricese.paper.indexer.analyzer com.netsitech.rcp.caricese.paper.indexer.dnd com.netsitech.rcp.caricese.paper.indexer.feature com.netsitech.rcp.caricese.paper.indexer.generator com.netsitech.rcp.caricese.paper.indexer.key com.netsitech.rcp.caricese.paper.indexer.legacy com.netsitech.rcp.caricese.paper.indexer.model com.netsitech.rcp.caricese.paper.indexer.releng com.netsitech.rcp.caricese.paper.indexer.ws" --prune-empty -- --branches=master - se al termine del comando precedente sono presenti nella cartella altri progetti, oltre a quelli che si vuole migrare, eliminarli
- rinominare la cartella come il nuovo repository
- effettuare il comando push (anche da interfaccia grafica o eclipse) e configurare il repository remoto con quello desiderato.
Nota: se il progetto o i progetti si trovano in una directory, per portarli sulla radice è possibile usare questo comando: git filter-branch --subdirectory-filter <directory> -- --all