Differenze tra le versioni di "Git"
Da WikiSitech.
Vai alla navigazioneVai alla ricerca(2 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 23: | Riga 23: | ||
# 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. | # 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 | # 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 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 | + | # 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 |
− | 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 | # 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 | # 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. | # 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