Git switch to commit

<branch>

Ramo a cui passare.

<new-branch>

Nome del nuovo ramo.

<start-point>

Punto di partenza del nuovo ramo. Specificando a è possibile creare un ramo basato su un punto della cronologia diverso da quello in cui punta attualmente HEAD. (O, nel caso di , consente di ispezionare e staccare da un altro punto.)

È possibile utilizzare la sintassi per fare riferimento all'ennesima ultima diramazione/commit a cui si è passati utilizzando l'operazione "git switch" o "git checkout". È inoltre possibile specificare quale sia il sinonimo di . Questa opzione viene spesso utilizzata per passare rapidamente da un ramo all'altro o per annullare un interruttore di ramo per errore.

Come caso speciale, è possibile utilizzare come scorciatoia per la base di unione di e se esiste esattamente una base di unione. È possibile omettere al massimo uno dei e , nel qual caso il valore predefinito è .

-c <new-branch>
--create <new-branch>

Crea un nuovo ramo denominato a partire da prima di passare al ramo. Questo è l'equivalente transazionale di

$ git branch <new-branch> $ git switch <new-branch>

vale a dire, il ramo non viene reimpostato/creato a meno che "git switch" non abbia successo (ad esempio, quando il ramo è in uso in un altro albero di lavoro, non solo il ramo corrente rimane lo stesso, ma il ramo non viene ripristinato al punto di inizio, nessuno dei due).

-C <nuovo-ramo>
--force-create <nuovo-ramo>

Simile a tranne per il fatto che se esiste già, verrà reimpostato su . Questa è una comoda scorciatoia per:

$ git branch -f <new-branch> $ git switch <new-branch>
-
d --detach

Passa a un commit per l'ispezione e gli esperimenti scartabili. Vedere la sezione "TESTA DISTACCATA" in git-checkout[1] per i dettagli.

Se non viene trovato ma esiste un ramo di tracciamento esattamente in un remoto (chiamalo ) con un nome corrispondente, considera come equivalente a

$ git switch -c <branch> --track <remote>/<branch>

Se il ramo esiste in più remoti e uno di essi è nominato dalla variabile di configurazione, Useremo quello ai fini della disambiguazione, anche se non è unico in tutti i telecomandi. Impostalo ad esempio per effettuare sempre il checkout dei rami remoti da lì se è ambiguo ma esiste sul remoto di origine. Vedi anche in git-config[1].

è il comportamento predefinito. Utilizzare per disabilitarlo.

Il comportamento predefinito può essere impostato tramite la variabile di configurazione.

-f
--force

Un alias per .

--discard-changes

Procedere anche se l'indice o l'albero di lavoro è diverso da . Sia l'indice che l'albero di lavoro vengono ripristinati in modo che corrispondano alla destinazione di commutazione. Se viene specificato, viene ripristinato anche il contenuto del sottomodulo in modo che corrisponda alla destinazione di commutazione. Questo viene utilizzato per eliminare le modifiche locali.

-m
--merge

Se ci sono modifiche locali a uno o più file che sono diverse tra il ramo corrente e il ramo a cui si sta passando, il comando rifiuta di cambiare ramo per preservare le modifiche nel contesto. Tuttavia, con questa opzione, viene eseguita un'unione a tre vie tra il ramo corrente, il contenuto dell'albero di lavoro e il nuovo ramo e ci si troverà sul nuovo ramo.

Quando si verifica un conflitto di unione, le voci di indice per i percorsi in conflitto vengono lasciate non unite ed è necessario risolvere i conflitti e contrassegnare i percorsi risolti con (o se l'unione deve comportare l'eliminazione del percorso).

--conflict=<stile>

Lo stesso dell'opzione sopra, ma cambia il modo in cui vengono presentati i pezzi in conflitto, sovrascrivendo la variabile di configurazione. I valori possibili sono "merge" (predefinito), "diff3" e "zdiff3".

-q
--quiet

Silenzioso, sopprime i messaggi di feedback.

--progress
--no-progress

Lo stato di avanzamento viene segnalato sul flusso di errore standard per impostazione predefinita quando è collegato a un terminale, a meno che non sia specificato. Questo flag abilita la segnalazione dello stato di avanzamento anche se non è collegato a un terminale, indipendentemente da .

Quando si crea un nuovo ramo, impostare la configurazione "a monte". Vedere in git-branch[1] per i dettagli.

Se non viene fornita alcuna opzione, il nome del nuovo ramo sarà derivato dal ramo di tracciamento remoto, guardando la parte locale del refspec configurato per il telecomando corrispondente, quindi spogliando la parte iniziale fino al "*". Questo ci direbbe di usare come ramo locale quando ci si dirama (o , o anche ). Se il nome dato non ha barra, o l'ipotesi precedente risulta in un nome vuoto, l'ipotesi viene interrotta. In tal caso, è possibile assegnare esplicitamente un nome con.

Non

imposta la configurazione "a monte", anche se la variabile di configurazione è vera.

--orphan <new-branch>

Crea un nuovo ramo non ancora nato, chiamato . Tutti i file tracciati vengono rimossi.

--ignore-other-worktrees

rifiuta quando il ref desiderato è già stato estratto da un altro albero di lavoro. Questa opzione fa controllare comunque il ref. In altre parole, il ref può essere mantenuto da più di un albero di lavoro.

--recurse-submodules
--no-recurse-submodules

Using aggiornerà il contenuto di Tutti i sottomoduli attivi in base al commit registrato nel superprogetto. Se non viene utilizzato nulla (o ), gli alberi di lavoro dei sottomoduli non verranno aggiornati. Proprio come git-submodule[1], questo staccherà i sottomoduli.