COMANDO COMMBATO COMMERCIALE COMMERCIA?

COMANDO COMMBATO COMMERCIALE COMMERCIA?

IL "GRANCH FILTRO GIT"Il comando riscrive l'intera cronologia della filiale, il che significa che qualsiasi commit che viene rimosso o modificato andrà perso in modo permanente. Pertanto, è fortemente suggerito di eseguire il backup del tuo repository prima di utilizzare questo comando. Inoltre, questo comando crea nuovi commit e sha hash. Quindi, non è consigliabile usarlo in una filiale pubblica.

Questo articolo discuterà:

    • Quali sono le opzioni di filtro di base disponibili per "GRANCH FILTRO GIT"Comando?
    • Come utilizzare il "GRANCH FILTRO GITComando "con il"-filtro ad albero" Opzione?
    • Come utilizzare il "GRANCH FILTRO GITComando "con il"-filtro indice" Opzione?
    • Come utilizzare il "GRANCH FILTRO GITComando "con il"-filtro msg" Opzione?

Quali sono le opzioni di filtro di base disponibili per il comando "GIT Filter-Branch"?

Le opzioni di filtro di base per "GRANCH FILTRO GIT"I comandi sono riportati di seguito:

Opzioni di filtro Descrizione
-Filtro Env Modifica l'ambiente in cui gli utenti effettuano commit.
-filtro ad albero Riscrivi l'albero e il suo contenuto.
-filtro indice Riscrivi l'indice.
-filtro genitore Riscrivi l'elenco dei genitori del commit.
-filtro msg Riscrivi i messaggi di commit.
-commit-filtro Eseguire commit.
-tag-name-filter Riscrivi il nome del tag.
-prugna-vuoto Istruire il ramo del filter git di rimuovere i commit vuoti.

Come utilizzare il comando "Git Filter-Branch" con l'opzione "-Tree-Filter"?

A volte gli utenti vogliono rimuovere un file specifico da tutti i commit per alcuni motivi, come se il file contenga alcune informazioni riservate o segrete. In questa situazione, utilizza il "GIT Filter -ranch -tree -filter 'rm -rf'"Comando per rimuovere un determinato file dall'intera cronologia di un repository.

Segui le istruzioni fornite per farlo.

Passaggio 1: vai al repository locale

Innanzitutto, scrivi il comando a pezzi dato e reindirizza alla directory desiderata:

$ cd "c: \ git \ local_repo"


Passaggio 2: visualizzare il contenuto del repository

Quindi, visualizzare il contenuto del repository corrente utilizzando il comando seguente:

$ ls


Secondo l'output di seguito, il repository corrente contiene due file. Scegli un particolare file che deve essere eliminato. Ad esempio, abbiamo selezionato il "File1.TXT" file:


Passaggio 3: rimuovere il file dall'intera cronologia

Quindi, eseguire il comando fornito insieme al nome del file selezionato per rimuovere quel file:

$ git filter-ranch-Tree-filter 'RM -rf File1.TXT'


Qui:

    • "-filtro ad albero"L'opzione viene utilizzata per specificare un comando da eseguire su ogni albero nel ramo.
    • "rm -rf"L'opzione viene utilizzata per eliminare il"File1.TXT" file:


Nota: Se il file non è presente in alcuni commit, eseguire il "'FileName RM"L'opzione non funzionerà per alberi e impegni.

Passaggio 4: verificare le modifiche

Infine, assicurarsi se il file è stato rimosso visualizzando il contenuto del repository:

$ ls


Come utilizzare il comando "GIT Filter-Branch" con l'opzione "-Index-Filter"?

Se l'utente desidera modificare l'indice del repository anziché l'intero ramo, il "GIT FILTER-BRANCH -Indice-filtro"Il comando può essere utilizzato. Questo può essere utile per rimuovere file specifici dall'indice.

Passaggio 1: visualizzare i file del repository

Esegui il comando indicato di seguito per elencare i file disponibili del repository corrente:

$ git ls-files


L'immagine seguente visualizza l'elenco dei file. Seleziona il file desiderato che si desidera rimuovere dall'indice. Ad esempio, abbiamo selezionato il "file4.TXT" file:


Passaggio 2: rimuovere il file dall'indice

Quindi, rimuovere il file selezionato dall'indice scrivendo il seguente comando:

$ git filter-ranch --index-filter 'git rm-cached --ignore-unmatch file4.TXT'


Qui:

    • "-filtro indice"Specifica il comando che verrà utilizzato per filtrare l'indice.
    • "-cache"L'opzione rimuove/elimina i file dall'indice.
    • "-Ignora-UNMATCH"Ignora eventuali errori:



Passaggio 3: verificare le modifiche

Infine, eseguire il comando fornito per garantire che il file sia stato eliminato dall'indice:

$ git ls-files


Come utilizzare il comando "GIT Filter-Branch" con l'opzione "-MSG-Filter"?

A volte gli utenti vogliono riscrivere il messaggio di commit specifico dalla cronologia dei registri. A tale scopo, il "Git Filter -ranch -f -msg -filter 'sed “s /// g» --all" può essere utilizzata.

Passaggio 1: visualizza la cronologia dei commit

Innanzitutto, controlla la storia di commit sha hash dell'attuale repository di lavoro:

$ git log --oneline


Nello screenshot seguente, la storia del commit può essere vista. Scegli il messaggio di commit desiderato che deve essere riscritto. Ad esempio, abbiamo selezionato il "File2 aggiunto"Commit Message:


Passaggio 2: riscrivi il messaggio di commit

Quindi, eseguire il seguente comando per riscrivere il messaggio di commit selezionato:

$ git filter-branch -f --msg-filter 'sed "s/file2 added/adding file2/g"' -- --all


Qui:

    • "-filtro msg"L'opzione viene utilizzata per modificare il messaggio di commit.
    • "-F"L'opzione esegue l'operazione con forza.
    • "sed"I comandi cerca la stringa"File2 aggiunto"Nel messaggio di commit e lo sostituisce con il"Aggiunta di file2" Messaggio.
    • "- -Tutto"L'opzione applica il filtro a tutte le filiali nel repository:



Passaggio 3: verifica

Infine, verifica le modifiche controllando il commit nella storia:

$ git log --oneline


Si può osservare che il vecchio messaggio di commit è stato sostituito con il nuovo messaggio di commit:


Questo riguardava tutto il "GRANCH FILTRO GIT"Comando in Git.

Conclusione

IL "GRANCH FILTRO GIT"Il comando viene utilizzato per riscrivere la cronologia di commit di una particolare filiale o di tutte le filiali in un repository. Consente agli utenti di eseguire varie operazioni su commit, come la rimozione di file, la modifica dei messaggi di commit, ecc. Inoltre, questo può essere utilizzato per ripulire un repository specifico e rimuovere le informazioni sensibili. Questo articolo ha spiegato il comando "Git Filter-Branch" e le sue opzioni di filtro.