Je veux revenir à une validation précédente, puis publier ce code, puis revenir à la dernière validation.
c’est-à-dire que mon maître pointe vers une version de validation plus ancienne pour que je puisse reproduire cette version, alors je veux revenir au dernier commit dont j’en étais un au départ.
Comment puis-je faire ceci?
Si vous voulez faire cela et rétablir le master pour le commit précédent:
git checkout master~1 # Checkout previous commit on master git checkout -b new_master # Create branch for new master git branch -D master # Delete old master git branch -mv new_master master # Make new_master master
Alternativement:
git reset --hard master~1 # Reset current branch to one commit ago on master
Votre question n’est pas claire. Je pense que ce que vous demandez, c’est ceci:
git push -f origin $old_commit_id :master
Qu’est-ce que ça va faire? Il poussera le $old_commit_id
à l’ origin
tant que nouvelle twig principale du chef d’ origin
.
Si c’est ce que vous vouliez, vous n’avez pas besoin de toucher votre twig master
locale.
utiliser git reset --hard
cela réinitialisera HEAD à cet ancien commit.
De plus, vous devez également utiliser l’origine git push -f origin
pour modifier le repo distant.
Vous pouvez simplement git checkout
, faire ce que vous devez faire, puis lancer un git checkout master
pour revenir au nouveau code.
Si vous devez modifier l’ancien code pour le libérer, vous devriez probablement:
git checkout -b my_release ... prepare code for release ... ... release code ... git checkout master git merge my_release
En outre, je ne peux pas recommander git flow suffisamment. Cela rend tout cela assez facile.
En supposant un graphe de validation comme celui-ci:
| (A) ---------> (B) ----------> (C) | ^ | (master)
Vous voulez d’abord passer la commande master
et créer une twig qui indique où se trouve actuellement le master
:
git checkout master git branch pointer master
Devrait ressembler à ceci maintenant:
| (A) ---------> (B) ----------> (C) | ^ | (HEAD, master, pointer)
Maintenant que vous êtes déjà sur master
, nous allons demander à la twig master
de reculer d’un commit:
git reset master~1
Maintenant, master
doit être reculé d’un espace, mais la twig de pointer
est toujours sur le dernier commit:
| (A) ---------> (B) ----------> (C) | ^ ^ | (HEAD, master) (pointer)
À ce stade, vous pouvez transférer le master
vers une télécommande ou, le cas échéant, effectuer une fusion rapide vers la twig du pointer
. Vous pouvez tuer la twig de pointer
à cet endroit:
git push origin master git merge --ff-only pointer git branch -D pointer
Finale:
| (A) ---------> (B) ----------> (C) | ^ ^ | [ origin/master ] (HEAD, master)
Pour passer à une version précédente:
git checkout
faites votre travail ici et engagez-le avec
git commit --amend
Revenir à la maîsortingse :
git checkout master