2016-02-25 15 views
6

Sto usando git per il repository del codice sorgente e il codice corrente in uno stato disordinato e voglio passare ad altri rami per un po 'di lavoro. Il problema è che non voglio fare solo un lavoro a metà, quindi come posso tornare a questo punto più tardi.Switch branch senza commit del codice di lavoro

risposta

2

Hai due opzioni per farlo.

Opzione 1: - Creare la patch per il codice di lavoro e verificare che tutto il codice di lavoro passi a un altro ramo.

Opzione 2: - Puoi riporre i tuoi rami. Clicca qui per maggiori dettagli ad esempio: http://www.gitguys.com/topics/temporarily-stashing-your-work/

+1

Link mi sembra morto. Un altro link interessante sulla conservazione: https://www.atlassian.com/git/tutorials/git-stash –

0

Non puoi semplicemente creare un'altra directory e clonare il ramo desiderato in esso?

Se si dispone di un runtime configurato per l'utilizzo di una determinata directory, creare un collegamento alla directory clone di diramazione attualmente in uso. In questo modo potresti avere più di un ramo localmente senza molto rimpasto delle tue risorse locali (solo un semplice script per ricollegare la directory usata dal tuo runtime/server).

1

Puoi riporre i tuoi rami. Ecco un esempio: http://www.gitguys.com/topics/temporarily-stashing-your-work/

+1

Fornire un codice. I collegamenti dovrebbero essere solo l'aggiunta alla risposta –

+1

Forse la fonte più affidabile per questo sarebbe https://git-scm.com/docs/git-stash – l0lander

+0

Link mi sembra morto. Un altro link interessante sulla conservazione: https://www.atlassian.com/git/tutorials/git-stash –

5

È possibile utilizzare git stash a "disfarsi" modifiche per un po 'e poi, quando si desidera ripristinare le modifiche precedenti utilizzano git stash pop *

È anche possibile (ed è più sicuro) impegnarsi il tuo WIP (work in progress) funziona, passa a un altro ramo, fai il tuo lavoro, ritorna al ramo originale, finisci il lavoro originale e poi squash i tuoi commit in uno solo.
Ricorda che il commit non è uguale al push, quindi puoi localmente avere una cronologia disordinata ma, una volta rebasato e schiacciato, tu (e il tuo team) vedrai solo la versione pulita.

* prestare attenzione perché se si memorizza più di una volta, git pop farà scoppiare solo l'ultima scorta. In questo caso è necessario utilizzare git pop [email protected]{<revision>}

2

Se avete la git più recente (> = ver.2.5.0), è possibile utilizzare git worktree.

Tramite il comando seguente, è possibile eseguire il checkout di un albero di lavoro temporaneo da utilizzare.

git worktree aggiungere sourcetree_dir NOME_RAMO

Dopo finito il tuo lavoro su questo ramo, è possibile utilizzare il seguente comando per eliminarlo.

git worktree prugna

0

Utilizzando la riga di comando, risposta breve:

git stash 
git checkout otherBranch 

Se il Brach è in uso origine:

git checkout origin otherBranch 

.. 
do your changes/commits 
.. 
git stash apply 

Con git stash apply torni le tue precedenti modifiche. È possibile trovare conflitti di unione ... risolti e commit di nuovo.

Problemi correlati