Git

Da WikiSitech.
Vai alla navigazioneVai alla ricerca

GIT

Git è un sistema di controllo di versione libero e open source distribuito.

Panoramica

Vediamo alcuni concetti fondamentali che costituiscono le basi di Git:

  1. - Basi di Git
  2. - I tre stati dei file
  3. - Struttura di un repository Git
  4. - 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:

  1. 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.
  2. aprire la linea di comando e spostarsi nella directory del repository
  3. eseguire git remote rm origin (questo rimuove il collegamento al repository remoto)
  4. 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
  5. se al termine del comando precedente sono presenti nella cartella altri progetti, oltre a quelli che si vuole migrare, eliminarli
  6. rinominare la cartella come il nuovo repository
  7. 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