Qual è la differenza tra git reset –mixed, –soft e –hard?

Qual E La Differenza Tra Git Reset Mixed Soft E Hard



Su Git, ogni commit è collegato al commit precedente e HEAD punta al commit più recente nel ramo di lavoro. La cronologia dei commit viene archiviata come un albero di commit. Tuttavia, a volte gli sviluppatori devono modificare la cronologia dei commit. A tal fine il “ $ git ripristinato Il comando ” viene utilizzato per modificare la cronologia del repository Git e correggere gli errori commessi.

Questo articolo spiegherà brevemente la differenza tra git reset –hard, –soft e –mixed.

Qual è la differenza tra git reset –mixed, –soft e –hard?

Git fornisce più opzioni di ripristino. In base a come gestiscono i commit, tutte le opzioni disponibili sono diverse tra loro. Tutti modificano la cronologia di Git e spostano indietro HEAD. Inoltre, gestiscono le modifiche in modo diverso, come ad esempio:







  • Il ' -morbido ” opzione utilizzata con “ $ git ripristinato ” per conservare i file e restituire le modifiche del commit all'indice di staging di Git.
  • $ git reset –misto ” viene utilizzato per annullare le modifiche apportate al commit e rimuovere il file dall'indice di staging senza eliminarlo dalla directory di lavoro.
  • Il ' -difficile ” opzione con “ $ git ripristinato Il comando ” viene utilizzato per eliminare tutte le modifiche e rimuoverle dalla directory di lavoro locale.

Facciamo un esempio per vedere come il ' $ git ripristinato Il comando 'funziona con diverse opzioni!



Passaggio 1: vai al repository Git desiderato

Innanzitutto, passa al repository Git desiderato utilizzando il ' CD comando:



$ CD 'C:\Vai \t is_repo'





Passaggio 2: crea file

Ora, esegui il comando indicato di seguito per creare un file:

$ tocco File4.txt



Passaggio 3: aggiungere il file all'indice di staging

Usa il ' git add ” comando per aggiungere il file appena generato nell'indice di staging:

$ git add File4.txt

Passaggio 4: confermare le modifiche

Successivamente, aggiungi tutte le modifiche al repository di lavoro eseguendo il comando ' git commit comando:

$ git commit -m 'File4 aggiunto'

Passaggio 5: controlla il registro Git

Quindi, controlla la cronologia del registro Git per visualizzare gli ultimi commit che sono stati aggiunti:

$ registro git

Nell'output di seguito, si può vedere che vengono visualizzati tutti gli ultimi commit aggiunti e il ' TESTA ” indica il recente commit:

Nota: Per controllare meglio l'attuale posizione di puntamento di HEAD, eseguire il comando ' registro git ” insieme al comando “ -una linea ' bandiera:

$ registro git --in linea

Di seguito l'output indicato mostra l'elenco di commit hash SHA con messaggi di commit:

Passaggio 6: utilizzare il comando git reset –soft

Per ripristinare le modifiche aggiunte dal repository Git all'indice di staging, utilizzare il ' resettare git ” insieme al comando “– morbido ” e specificare la posizione HEAD desiderata in cui è necessario spostare il puntatore:

$ resettare git --morbido TESTA~ 1

Passaggio 7: controlla lo stato di Git

Ora, verifica la posizione di ripristino di HEAD controlla lo stato del repository Git:

$ stato git

Si può vedere che il “ git reset –soft Il comando ” ha restituito le modifiche del commit all'indice di staging Git. Inoltre, il “ File4.txt ” il file si trova ora nell'indice di staging di Git e deve essere sottoposto a commit:

Passaggio 8: controlla il registro Git

Per visualizzare la posizione corrente di HEAD, esegui il comando specificato insieme a ' -una linea ' opzione:

$ registro git --in linea

Qui, la TESTA sta indicando il ' File3 ' commettere:

Passaggio 9: utilizzare git reset - comando misto

Per annullare le modifiche salvate e rimuovere i file dall'area di staging senza eliminarli dalla directory di lavoro, eseguire il comando ' $ git reset –misto 'comando insieme alla posizione HEAD richiesta del commit:

$ resettare git --misto TESTA~ 1

Passaggio 10: controlla lo stato di Git

Visualizza le modifiche appena aggiunte controllando lo stato del repository Git:

$ stato git

Si può osservare che le modifiche al commit specificate vengono rimosse dall'area di staging. Tuttavia, sono posizionati nell'area di lavoro:

Passaggio 11: controlla il registro Git

Controlla la cronologia dei log di riferimento del repository Git insieme all'hash SHA:

$ registro git --in linea

Passaggio 12: utilizzare git reset — comando hard

Per rimuovere le modifiche aggiunte dalla directory di lavoro locale di Git, eseguire il comando ' $ git reset –difficile comando:

$ resettare git --difficile TESTA~ 1

Passaggio 13: verificare il puntatore HEAD ripristinato

Per verificare il puntatore HEAD, tornare alla posizione specificata, eseguire il comando ' registro git comando:

$ registro git --in linea

L'output seguente mostra che HEAD punta al ' File1 aggiunto ' commettere:

Passaggio 14: controlla lo stato di Git

Per visualizzare le modifiche aggiunte, controlla lo stato di Git:

$ stato git

Si può vedere che non abbiamo tracce e modifiche in sospeso di ' File2.txt ' file. Pertanto, File2.txt è stato rimosso completamente:

Passaggio 15: verificare l'elenco dei contenuti del repository

Per verificare l'elenco dei contenuti del repository, eseguire il comando ' ls comando:

$ ls

Come puoi vedere, il “ File2.txt ” il file non esiste nella directory corrente:

Abbiamo spiegato la differenza tra le opzioni git reset –mixed, –soft e –hard.

Conclusione

Il ' resettare git Il comando ” viene utilizzato per ripristinare le modifiche, modificare la cronologia del repository Git e correggere gli errori. Il ' git reset –soft Il comando ” mantiene i file e restituisce le modifiche del commit all'area di staging di Git. Al contrario, il “ git reset –misto Il comando annulla le modifiche del commit e rimuove il file dall'indice di staging senza eliminarlo dalla directory di lavoro. Per eliminare tutte le modifiche e rimuoverle dall'area di lavoro di Git, il ' git reset –difficile ” è possibile utilizzare il comando. Questo articolo ha illustrato la differenza tra git reset –mixed, –soft e –hard.