J'ai commencé à travailler sur une nouvelle fonctionnalité et après avoir codé un peu, j'ai décidé que cette fonctionnalité devrait être sur sa propre branche.
Comment puis-je déplacer les modifications non validées existantes vers une nouvelle branche et réinitialiser ma branche actuelle ?
Je veux réinitialiser ma branche actuelle tout en préservant le travail existant sur la nouvelle fonctionnalité.
Utilisez les éléments suivants :
git checkout -b <new-branch>
Cela laissera votre branche actuelle telle quelle, créera et vérifiera une nouvelle branche et conservera tous vos changements. Vous pouvez alors faire un commit avec :
git add <files>
et commiter sur votre nouvelle branche avec :
git commit -m "<Brief description of this commit>"
Les changements dans le répertoire de travail et les changements indexés n'appartiennent pas encore à une branche. Cela change l'endroit où ces changements aboutiraient.
Vous ne remettez pas à zéro votre branche d'origine, elle reste telle qu'elle est. Le dernier commit sur <old-branch>
sera toujours le même. Par conséquent, vous devez checkout -b
et ensuite commiter.
Alternativement :
Sauvegarder les changements actuels dans une cachette temporaire :
$ git stash
Créez une nouvelle branche basée sur ce stash, et passez à la nouvelle branche :
$ git stash branch <new-branch> stash@{0}
Astuce : utilisez la touche de tabulation pour réduire la saisie du nom de la stash.
Si vous le commitez, vous pouvez aussi choisir l'ID du commit unique. Je fais souvent cela lorsque je commence à travailler dans master, et que je veux ensuite créer une branche locale avant de pousser vers mon origin/
git cherry-pick <commitID>
Il y a beaucoup de choses que vous pouvez faire avec cherry-pick, comme décrit [ici][1], mais cela pourrait être un cas d'utilisation pour vous.