2015-08-20 15 views

risposta

11

modifiche non si sposteranno da un ramo all'altro. Per tenerli separati, devi apportare le modifiche a stash prima di passare a un altro ramo. Quando torni al tuo ramo, puoi apply quelle modifiche per recuperarle.

Come si vede qui sotto:

>$ git status 
On branch branch_1 
Your branch is up-to-date with 'origin/branch_1'. 

modified: dir/file.rb 
>$ git stash 
>$ git checkout <branch_2> 

>$ git checkout <branch_1> #after finishing your tasks in branch_2 you can go back to branch_1 
>$ git stash apply 

Ora verranno restituiti i cambiamenti che avete fatto in precedenza nel branch_1

+3

* "untracked commits" *? Probabilmente vuoi dire "modifiche senza impegno". E non si spostano da un ramo all'altro. Non si trovano su nessun ramo perché non si trovano nel repository (non sono ancora stati impegnati). – axiac

+1

Sì, le modifiche senza commit non saranno su alcun ramo, quindi saranno disponibili in altri rami se effettui il checkout. –

4

I Checkout ramo Un modificare il file e quando ho checkout padrone ancora una volta i cambiamenti sono anche lì.

Le modifiche non eseguite non appartengono a nessun ramo. Sono presenti solo nell'albero di lavoro (e nell'indice se sono stati aggiunti).

È buona norma disporre di un albero di lavoro pulito quando si passa da un ramo all'altro per evitare problemi quando le modifiche nell'albero di lavoro sono in conflitto con le differenze tra i rami commutati.

Perché ramo A è stato appena creato e che non ha commesso nulla su di esso e né sul master, ramo A punta allo stesso commettono come master e il passaggio tra A e master non richiede cambiamenti nella struttura di lavoro. Questo è il motivo per cui puoi cambiare i rami senza entrare in conflitto.

Al fine di mettere i cambiamenti che hai appena fatto in un ramo (diciamo il ramo controllato è A) si deve aggiungere l'all'indice poi commetterli:

git add . 
git commit 

Per saperne di più git add e git commit.

Problemi correlati