Il existe un dossier contrôlé par git sur un serveur où la branche principale est extraite et où toute une pile de fichiers a été modifiée et non validée. Existe-t-il un moyen de valider les modifications dans une branche distincte afin de pouvoir revenir à une version vierge?
c’est-à-dire que je veux annuler efficacement tous ces changements de personnes mais les stocker dans une autre chance afin que si cette personne souhaite leurs changements, ils peuvent basculer vers cette branche.
(Oui, je sais que ce n’est pas comme ça que git est conçu pour fonctionner mais c’est ma situation!) Toutes les idées sont très appréciées.
Tout d'abord, passer à une autre branche basée dans le courant HEAD est exécuté comme suit:
git checkout -b newbranch
Commettez toutes les modifications (en supposant qu'aucun fichier ne soit ajouté, sinon git add
leur):
git commit -a
Retournez à la branche master:
git checkout master
Les modifications précédemment non validées seront toutes dans la branche newbranch et le maître restera dans l'état où il était sans ces modifications.
Cette méthode est utile:
git checkout -B <new_branch> <start point>
Où:
<new_branch>
est votre nouvelle succursale (par exemple, my_branch
)<start point>
est votre branche de départ (master
dans votre cas)-B
crée une nouvelle branche à partir de <start point>
, s'il existe déjà, réinitialisez-le sur (il n'échouera pas car -b
quand la branche existe déjà)-m
Il peut être utile de spécifier lorsque vous changez de branche, cela effectuera une fusion à trois voies entre la branche actuelle et le contenu de votre arbre de travail (utile pour les scripts).Voir: man git-checkout
pour plus de détails.
Vous pouvez toujours cacher vos modifications.
git stash
git checkout -b bravenewmaster
git stash apply
N'oubliez pas non plus que, si vous vous commettez dans la "mauvaise" branche, vous pouvez toujours la déplacer, car celle-ci n'est qu'un pointeur vers une validation.