Supponiamo che io ho una storia git lineare di 8 commit e un ramo (master):L'applicazione di git si commette sull'albero di lavoro non aggiunto?
1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> [8=master]
voglio passare master 4 (che posso fare con git branch -f master 4
):
1 -> 2 -> 3 -> [4=master] -> 5 -> 6 -> 7 -> 8
Ora l'albero di lavoro è in stato 4.
Ora desidero applicare le modifiche da 4 -> 8
al mio albero di lavoro come patch.
Cioè, senza alterare lo stato della cartella .git, voglio applicare le modifiche da 4->8
non attive al mio albero di lavoro. Dopo questo l'albero di lavoro dovrebbe essere nello stato 8 ma lo stato impegnato e il ramo principale dovrebbero essere nello stato 4.
Un altro modo per dirlo: fingere dopo aver spostato il master a 4, ho apportato le modifiche da 4 a 8 manualmente al mio albero di lavoro senza aggiungerli all'indice. Il risultato dovrebbe essere lo stesso.
Qual è il modo più semplice per farlo?
O, ugualmente, 'git diff 4..8 | git apply' – cmbuckley
Mi piace il tuo meglio. – jthill