J'ai commencé à travailler sur mon maître la pensée branche que ma tâche serait facile. Après un certain temps, j'ai réalisé qu'il faudrait plus de travail et je veux faire tout ce travail dans une nouvelle branche.
Comment puis-je créer une nouvelle branche et emporter toutes ces modifications avec moi sans salir le maître ?
git
git-branch
willcodejavaforfood
la source
la source
branch current changes
vsexisting uncommited branch
. Quiconque parle anglais verra immédiatement qu'ils sont les mêmes, mais les moteurs de recherche ne le feront probablement pas. Gardez cette question.Réponses:
Si vous n'aviez pas encore fait de commit, seuls (1: branche) et (3: checkout) suffiraient.
Ou, en une seule commande:
git checkout -b newBranch
Comme mentionné dans la
git reset
page de manuel :master
branche " ". Vous souhaitez continuer à les peaufiner dans une branche de rubrique, donc créez une branche "topic/wip
" à partir du courantHEAD
.master
branche pour vous débarrasser de ces trois commits.topic/wip
branche " " et continuez à travailler.Remarque: en raison de l'effet "destructif" d'une
git reset --hard
commande (elle réinitialise l'index et l'arborescence de travail. Toutes les modifications apportées aux fichiers suivis dans l'arborescence de travail<commit>
sont supprimées), je préfère opter pour:Cela garantirait que je ne perds aucun fichier privé (non ajouté à l'index).
L'
--soft
option ne touche pas du tout le fichier d'index ni l'arborescence de travail (mais réinitialise la tête<commit>
, comme tous les modes le font).Avec Git 2.23+ , la nouvelle commande
git switch
créerait la branche sur une seule ligne (avec le même type dereset --hard
, alors méfiez-vous de son effet):la source
git reset --hard
nuke vos modifications, et si elles ne sont pas encore engagées, elles sont irrécupérables! Vous pourriez avoir juste besoingit checkout -b …
git checkout -b
première.topic_wip
fonctionnerait aussi;)Comme indiqué dans cette question: Git: créer une branche à partir de modifications non marquées / non validées sur le maître : la sauvegarde n'est pas nécessaire.
Utilisez simplement:
git checkout -b topic/newbranch
Tout travail non engagé sera emmené à la nouvelle succursale.
Si vous essayez de pousser, vous obtiendrez le message suivant
Faites comme suggéré pour créer la branche à distance:
git push --set-upstream origin feature/feature/NEWBRANCH
la source
Suivez ces étapes:
Créez une nouvelle branche:
Commander une nouvelle branche: (cela ne réinitialisera pas votre travail.)
Maintenant, engagez votre travail sur cette nouvelle branche:
L'utilisation des étapes ci-dessus gardera votre branche d'origine propre et vous n'aurez pas à faire de 'git reset --hard'.
la source
-s
à l'étape 3.Comme vous n'avez encore effectué aucune validation, vous pouvez enregistrer toutes vos modifications dans la cachette, créer et basculer vers une nouvelle branche, puis réintégrer ces modifications dans votre arborescence de travail:
la source
git stash push
n'est pas une commande. Vous voudrez probablement utilisergit stash
ougit stash save
. Si vous souhaitez inclure des fichiers non suivis dans la cachette, utilisez l'--include-untracked
option. De même, si vous souhaitez inclure des fichiers non suivis et ignorés dans la cachette, utilisez--add
plutôt l' option.Pour ajouter de nouvelles modifications à une nouvelle branche et pousser vers la télécommande:
Souvent, j'oublie d'ajouter la partie d'origine pour pousser et devenir confus pourquoi je ne vois pas la nouvelle branche / commit dans bitbucket
la source