Vous pouvez simplement vérifier dans la branche de test, puis vous engager. Vous ne perdez pas vos modifications non validées lorsque vous passez à une autre succursale.
En supposant que vous soyez dans la branche principale:
git checkout test
git add .
git add deletedFile1
git add deletedFile2
...
git commit -m "My Custom Message"
Je ne suis pas vraiment sûr des fichiers supprimés, mais je suppose qu'ils ne sont pas inclus lorsque vous utilisez git add .
Parfois, l'extraction échouera car vos modifications entrent en conflit avec cette branche. Vous pouvez essayer checkout -m pour fusionner.
Jouni K. Seppänen
2
J'ai essayé cela mais j'ai eu une erreur: erreur: vos modifications locales apportées aux fichiers suivants seraient écrasées lors du paiement. Veuillez valider vos modifications ou les cacher avant de pouvoir changer de branche.
ishwr
Bien que cela fonctionnera, la réponse qui dit que l'utilisation de la réserve devrait être préférée, l'OMI. Peut-être juste un choix personnel, mais c'est un flux de travail plus propre, logiquement et introduit STASH qui est une commande utile.
Patrick
L'option "-b" est manquante, car le titre suggère que la question concerne une "nouvelle" branche.
Guntram
195
Vous pouvez également créer une nouvelle branche et y basculer en faisant:
git checkout -b new_branch
git add .
J'utilise cela tout le temps car j'oublie toujours de démarrer une nouvelle branche avant de commencer à éditer du code.
même problème que @jouni noté pour l'autre réponse - vous pouvez rencontrer des difficultés pour fusionner la branche dans master si des modifications supplémentaires sont en conflit avec les modifications d'origine. IMO ce fil répond mieux à la question: stackoverflow.com/questions/556923/…
jpw
Bref, doux et rassurant ... "J'utilise ça tout le temps ..."
ϹοδεMεδιϲ
1
N'oubliez pas de faire un commit dans le new_branch. Si vous revenez à la branche principale et rétablissez les fichiers modifiés, vous les perdrez également dans la nouvelle branche.
petrsyn
36
Pourquoi ne pas simplement utiliser git stash. Je pense que c'est plus intuitif comme un copier-coller.
$ git branch
develop
* master
feature1
TEST
$
Vous avez des fichiers dans votre branche actuelle que vous souhaitez déplacer.
$ 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
stash@{0}: WIP on master: 934beef ...great changes
$
Passez à l'autre branche.
$ git checkout TEST
Et postuler
$ 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
#
J'aime aussi git stashparce que j'utilise git flow, ce qui se plaint lorsque vous voulez terminer une branche de fonctionnalité tout en ayant des modifications encore dans votre répertoire de travail.
Tout comme @Mike Bethany, cela m'arrive tout le temps car je travaille sur un nouveau problème en oubliant que je suis toujours sur une autre branche. Ainsi, vous pouvez stocker votre travail git flow feature finish..., et git stash applydans une nouvelle git flow feature start ...branche.
git stashest ma manière préférée de traiter les changements non engagés. C'est certainement une méthode intuitive quand on la considère comme du copier-coller.
Matthew Mitchell
Cela me semble une bonne approche. Cela a fonctionné sans problème.
Yunus Nedim Mehel
Je ne savais pas que vous pouviez le faire et cela a bien fonctionné. Se sent un peu plus intuitif que les autres méthodes.
glaucon
Je pense que cacher c'est une manière plus professionnelle, au lieu d'utiliser git checkout, puis d'ajouter. Je pense que votre réponse devrait être plus de 100 votes.
Réponses:
Vous pouvez simplement vérifier dans la branche de test, puis vous engager. Vous ne perdez pas vos modifications non validées lorsque vous passez à une autre succursale.
En supposant que vous soyez dans la branche principale:
Je ne suis pas vraiment sûr des fichiers supprimés, mais je suppose qu'ils ne sont pas inclus lorsque vous utilisez
git add .
la source
Vous pouvez également créer une nouvelle branche et y basculer en faisant:
J'utilise cela tout le temps car j'oublie toujours de démarrer une nouvelle branche avant de commencer à éditer du code.
la source
Pourquoi ne pas simplement utiliser git stash. Je pense que c'est plus intuitif comme un copier-coller.
Vous avez des fichiers dans votre branche actuelle que vous souhaitez déplacer.
Passez à l'autre branche.
Et postuler
J'aime aussi
git stash
parce que j'utilisegit flow
, ce qui se plaint lorsque vous voulez terminer une branche de fonctionnalité tout en ayant des modifications encore dans votre répertoire de travail.Tout comme @Mike Bethany, cela m'arrive tout le temps car je travaille sur un nouveau problème en oubliant que je suis toujours sur une autre branche. Ainsi, vous pouvez stocker votre travail
git flow feature finish...
, etgit stash apply
dans une nouvellegit flow feature start ...
branche.la source
git stash
est ma manière préférée de traiter les changements non engagés. C'est certainement une méthode intuitive quand on la considère comme du copier-coller.git stash --include-untracked
la source