Come si possono inserire modifiche non impegnate in un ramo TEST quando sono al ramo master
?Inserimento di modifiche non accettate su un nuovo ramo da Git
risposta
È possibile effettuare il checkout al ramo di test e quindi eseguire il commit. Non si perdono le modifiche non modificate quando si passa a un altro ramo.
Supponendo siete al ramo principale:
git checkout test
git add .
git add deletedFile1
git add deletedFile2
...
git commit -m "My Custom Message"
io non sono davvero sicuro sui file cancellati, ma immagino che non sono incluse quando si utilizza git add .
A volte il il checkout fallirà perché le tue modifiche sono in conflitto con quel ramo. Puoi provare check -m per unire. –
I file cancellati possono essere gestiti quando si esegue 'git -u add .' –
Ho provato a farlo ma ho ricevuto un errore: errore: le modifiche locali ai seguenti file sarebbero state sovrascritte dal pagamento. Per favore, commetti i tuoi cambiamenti o mettili da parte prima di poter cambiare ramo. – ishwr
git checkout TEST
git add file1 file2
git commit
+1 per semplicità nuda –
Inoltre è possibile creare un nuova filiale e l'interruttore ad esso facendo:
git checkout -b new_branch
git add .
io uso questo tutto il tempo perché mi dimentico sempre di avviare un nuovo ramo prima di iniziare la modifica del codice.
+1 risposta più breve e più semplice. –
lo stesso problema di @jouni rilevato per l'altra risposta: puoi incontrare difficoltà nel fondere il ramo in master se ulteriori modifiche sono in conflitto con le modifiche originali. IMO questo thread risponde meglio alla domanda: http: // stackoverflow.it/questions/556923/git-how-to-merge-my-local-working-changes-into-another-branch – jpwynn
Breve, dolce e rassicurante ... "Lo uso sempre ..." –
Perché non usare solo git stash. Penso che sia più intuitivo come un copia-e-incolla.
$ git branch
develop
* master
feature1
TEST
$
Si dispone di alcuni file nel ramo corrente che si desidera spostare.
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: awesome.py
#
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
#
# modified: linez.py
#
$
$ git stash
Saved working directory and index state \
"WIP on master: 934beef added the index file"
HEAD is now at 934beef added the index file
(To restore them type "git stash apply")
$
$ git status
# On branch master
nothing to commit (working directory clean)
$
$
$ git stash list
[email protected]{0}: WIP on master: 934beef ...great changes
$
Spostarsi all'altro ramo.
$ git checkout TEST
e applicare
$ git stash apply
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
#
# modified: awesome.py
# modified: linez.py
#
Mi piace anche git stash
perché io uso git flow
, che si lamenta quando si vuole finitura un ramo di caratteristica pur avendo cambiamenti ancora nella directory di lavoro.
Proprio come @Mike Bethany, mi succede tutto il tempo perché lavoro su un nuovo problema dimenticando che sono ancora su un altro ramo. Quindi puoi stash il tuo lavoro, git flow feature finish...
e git stash apply
nella nuova filiale git flow feature start ...
.
'git stash' è il mio modo preferito di gestire le modifiche non salvate. È certamente un metodo intuitivo quando lo si considera come copia e incolla. –
Questo mi sembra un buon approccio. Ha funzionato senza problemi. –
Non sapevo che potevi fare questo e ha funzionato bene. Sembra un po 'più intuitivo rispetto agli altri metodi. – glaucon
Vedere anche: http://stackoverflow.com/questions/2944469/how-to-commit-my-current-changes-to-a-different-branch-in-git –