IntelliJ supporta git stash e il proprio comando shelve integrato. Questi sembrano essere quasi identici per scopo e utilità. Qual'è la differenza tra loro?
IntelliJ supporta git stash e il proprio comando shelve integrato. Questi sembrano essere quasi identici per scopo e utilità. Qual'è la differenza tra loro?
Risposte:
Dalla documentazione di IntelliJ :
Nell'integrazione Git, oltre a shelving e unshelving, sono supportati rispettivamente "stashing" e "unstashing". Queste caratteristiche hanno molto in comune, l'unica differenza sta nel modo in cui le patch vengono generate e applicate.
- Le patch con modifiche nascoste vengono generate da Git stesso. Per applicarli in un secondo momento, non è necessario IntelliJ IDEA.
- Le patch con modifiche accantonate vengono generate da IntelliJ IDEA. Normalmente, vengono applicati anche tramite l'IDE. L'applicazione di modifiche accantonate al di fuori di IntelliJ IDEA è possibile ma richiede passaggi aggiuntivi.
git stash push
.
Sono abbastanza simili tranne:
Inoltre, IMHO, shelve funziona leggermente più velocemente, specialmente in un grande progetto, quando sono stati modificati molti file.
Consulta la documentazione per maggiori informazioni.
git stash -- foo/bar.txt
Un netto vantaggio che Intellij's Shelve ha rispetto alla semplice scorta di Git è che usando Shelve, puoi salvare le modifiche appartenenti a più repository in un elenco di modifiche. Usando lo stash, avresti bisogno di stash / unstash in ogni repo individualmente. Ciò è molto utile in un progetto di grandi dimensioni con più moduli (ciascuno con il proprio repository) in cui il lavoro di una particolare funzionalità può interessare più moduli (e quindi più repository)
Ecco cosa dice la documentazione
Le modifiche all'archiviazione sono molto simili agli scaffali. L'unica differenza è nel modo in cui le patch vengono generate e applicate. Gli archivi sono generati da Git e possono essere applicati dall'interno di IntelliJ IDEA o dall'esterno. Le patch con modifiche accantonate vengono generate da IntelliJ IDEA e vengono applicate anche tramite IDE. Inoltre, lo stashing coinvolge tutte le modifiche non salvate, mentre quando si inseriscono le modifiche su uno scaffale, è possibile selezionare alcune delle modifiche locali invece di archiviarle tutte.