Voglio creare un ramo foo
(e averlo estratto) che inizierà sullo stesso commit di origin/bar
, ma attualmente non ho il origin/bar
estratto. C'è una sola linea che fa questo?Git avviare il ramo da un altro ramo senza rilevamento
risposta
Lo si può fare in un comando singolo: git checkout
consente l'opzione --no-track
--no-track
da specificare direttamente.
git checkout -b foo --no-track origin/bar
Questo dovrebbe fare il trucco:
git branch foo origin/bar
git checkout foo
E se insistere su oneline:
git checkout -b foo origin/bar
Non esattamente un solo rivestimento;) – mwm314
Dipende se si desidera che il nuovo ramo per monitorare il telecomando origin/bar
.
per tenere traccia della distanza:
git checkout -b foo origin/bar
Per non monitorare il telecomando:
git checkout -b foo --no-track origin/bar
(si può sempre aggiungere un rapporto di monitoraggio in seguito.)
Git ha una bandiera per la creazione di un tale ramo:
https://git-scm.com/docs/git-checkout/
--orphan
Creare un nuovo ramo orfano di nome, ha iniziato da e passare ad esso. Il primo impegno fatto su questo nuovo ramo non avrà genitori e sarà la radice di una nuova storia totalmente disconnessa da tutti gli altri rami e commit.L'indice e l'albero di lavoro sono regolati come se fosse stato eseguito in precedenza
git checkout <start_point>
.Ciò consente di avviare una nuova storia che registra una serie di percorsi simili a eseguendo facilmente
git commit -a
per rendere la radice commesso.Questo può essere utile quando si desidera pubblicare l'albero da un commit senza esporre la sua cronologia completa. Si potrebbe voler fare questo per pubblicare un ramo open source di un progetto il cui albero corrente è
clean
, ma la cui cronologia completa contiene bit di codice proprietari o altrimenti ingombranti.Se si desidera avviare una cronologia disconnessa che registra un insieme di percorsi completamente diverso da quello di, quindi è necessario cancellare l'indice e l'albero di lavoro subito dopo aver creato il ramo orfano eseguendo
git rm -rf .
dal livello superiore dell'albero funzionante. Successivamente sarai pronto per preparare i tuoi nuovi file, ripopolare l'albero di lavoro, copiandoli da altrove, estraendo un tarball, ecc.
Questo non sembra quello richiesto dall'OP. Non vedo alcuna menzione nella questione della disconnessione della cronologia, vogliono solo passare da una filiale esistente senza preoccuparsi di controllarla prima. –
Concordo, rileggendo la domanda, ho capito per la prima volta che vuole un ramo senza storia :-) – CodeWizard
- 1. Git: ottenere modifiche da un altro ramo
- 2. git checkout un altro ramo
- 3. Come resettare un ramo su un altro ramo con git?
- 4. Come unire un ramo ad un altro ramo in GIT?
- 5. Creazione di un ramo git basato su un altro ramo
- 6. git: checkout file da un altro ramo nel ramo attuale (non passare HEAD all'altro ramo)
- 7. Come unire il ramo gerrit ad un altro ramo gerrit
- 8. Come unire un file specifico da un ramo in un altro ramo in Git
- 9. rendere git ramo il ramo principale
- 10. git log la differenza tra 1 ramo da un altro
- 11. Git: creato nuovo ramo da un ramo sbagliato
- 12. Git marca il punto master remoto su un altro ramo
- 13. Git: sposta il commit specifico su un altro ramo
- 14. git - ramo "debug", unione "fix" ramo senza "debug"
- 15. Git: resetta altro ramo a corrente senza checkout
- 16. git - sposta il "tag" del ramo su un altro commit?
- 17. Da master, commit in un altro ramo
- 18. Come duplicare un ramo in un altro ramo esistente in git
- 19. Git - Sostituire ramo locale con ramo remoto
- 20. Git - Come verificare se un ramo è mai stato fuso in un altro ramo?
- 21. Aggiunta git sottostruttura da un ramo
- 22. clone git in un ramo
- 23. Quale ramo git è stato controllato da questo ramo?
- 24. Quando eliminare un ramo da Git?
- 25. Confronta il ramo git con il ramo rebased
- 26. È possibile inoltrare rapidamente un altro ramo senza verificarlo?
- 27. Git: ripristina/ripristina un intero ramo in uno stato di un altro ramo?
- 28. Come creare il ramo da commit specifico in ramo diverso
- 29. Utilizzando git, come si spostano alcune modifiche non salvate da un ramo a un altro ramo in una cartella diversa?
- 30. Come unire capo commette da un altro ramo?
Tecnicamente * non puoi * avere 'origine/bar' estratto perché è non un ramo (regolare, locale). Puoi controllare il commit a cui punta il ramo di localizzazione remota. Generalmente vuoi '--no-track' come già risposto a hvd, comunque. – torek