J'ai commencé à travailler sur ma branche master en pensant que ma tâche serait facile. Après un moment, j'ai réalisé que cela prendrait plus de travail et je veux faire tout ce travail dans une nouvelle branche.
Comment puis-je créer une nouvelle branche et prendre toutes ces modifications avec moi sans salir master?
Si vous n'avez pas encore fait de commit, seulement (1: branche) et (3: checkout) suffiraient.
Ou en une seule commande: git checkout -b newBranch
Comme indiqué dans la _git reset
_ page de manuel :
_$ git branch topic/wip # (1)
$ git reset --hard HEAD~3 # (2) NOTE: use $git reset --soft HEAD~3 (explanation below)
$ git checkout topic/wip # (3)
_
master
". Vous voulez continuer à les polir dans une branche de sujet, créez donc une branche "_topic/wip
_" à partir du HEAD
actuel.master
pour supprimer ces trois commits.topic/wip
_" et continuez à travailler.Remarque: en raison de l'effet "destructif" d'une commande _git reset --hard
_ (elle réinitialise l'index et l'arbre de travail. Toute modification apportée aux fichiers suivis dans l'arbre de travail depuis _<commit>
_ est ignorée). avec:
_$ git reset --soft HEAD~3 # (2)
_
Cela ferait en sorte que je ne perde aucun fichier privé (non ajouté à l'index).
L'option _--soft
_ ne touche ni le fichier d'index ni l'arborescence de travail (mais réinitialise la tête à _<commit>
_, comme tous les modes).
Comme indiqué dans cette question: Git: créer une branche à partir de modifications non étiquetées/non validées sur le maître : stash n'est pas nécessaire.
Il suffit d'utiliser:
git checkout -b topic/newbranch
Tout travail non engagé sera pris en charge par la nouvelle agence.
Si vous essayez de pousser vous obtiendrez le message suivant
fatal: La fonction de branche actuelle/NEWBRANCH n'a pas de branche en amont. Pour pousser la branche actuelle et définir la télécommande comme étant en amont, utilisez
git Push --set-upstream Origin feature/feature/NEWBRANCH
Faites juste comme suggéré pour créer la branche à distance:
git Push --set-upstream Origin feature/feature/NEWBRANCH
Suivez ces étapes:
Créer une nouvelle branche:
git branch newfeature
Commander une nouvelle branche: (cela ne réinitialisera pas votre travail.)
git checkout newfeature
Commencez maintenant votre travail sur cette nouvelle branche:
git commit -s
En utilisant les étapes ci-dessus, votre branche d'origine restera propre et vous ne devrez pas effectuer de 'réinitialisation git - dure'.
Comme vous n'avez pas encore effectué de commits, vous pouvez enregistrer toutes vos modifications dans la réserve, créer et basculer vers une nouvelle branche, puis réinsérer ces modifications dans votre arbre de travail:
git stash # save local modifications to new stash
git checkout -b topic/newbranch
git stash pop # apply stash and remove it from the stash list
Pour ajouter de nouvelles modifications à une nouvelle branche et à Push to remote:
git branch branch/name
git checkout branch/name
git Push Origin branch/name
Souvent, j'oublie d'ajouter la partie d'origine à Push et je ne comprends pas pourquoi je ne vois pas la nouvelle branche/commit dans bitbucket