Donc, il y a un certain nombre de réponses héritées ici. Je vais vous montrer comment I recommencer sur une branche en 2021 :
Lorsque vous avez fait des dizaines de commits et que des dizaines de fichiers ont été modifiés et que vous avez besoin de réinitialiser
git checkout master
git pull origin master
git checkout -b feat-foo-v2 # make a second version of feat-foo branch
maintenant vous avez une branche fraîche. Mais vous avez probablement encore fait un tas de travail qui est toujours bon, vous avez juste besoin de tirer en ceux dossiers. Lorsque vous êtes dans votre Racine répertoire git :
git checkout feat-foo -- path/to/file/to/be/used.java
Maintenant vous avez une copie du fichier individuel de l'ancienne branche. Faites-le encore quelques fois, et l'ancienne branche sera obsolète. Vous pouvez maintenant supprimer cette branche et la renommer feat-foo-v2
a feat-foo
.
Disons que vous avez un fichier avec quelques changements, et que vous voulez seulement tirer dans algunos de ces changements. Je vous suggère de vous familiariser avec le --patch
option sur git checkout
:
git checkout -p feat-foo -- path/to/file.java
ouvrira une boîte de dialogue qui vous permettra de sélectionner les parties des modifications du fichier que vous souhaitez conserver.
Quand vous ne pouvez pas simplement créer une nouvelle branche Pour une raison ou une autre, vous êtes amoureux de votre branche et vous ne voulez ou ne pouvez pas l'abandonner. Vous savez que vous devez réinitialiser quelques fichiers, mais vous ne devriez pas avoir besoin de tout réinitialiser. Créer une toute nouvelle branche était en fait une étape inutile. Nous pouvons retirer le frais des fichiers du maître :
git checkout master -- path/to/file.java
et maintenant un fichier est remis à zéro ! Et si vous voulez juste réinitialiser partie d'un fichier, --patch
devrait fonctionner de la même manière.
0 votes
Voici un lien vers ma réponse à une question connexe : stackoverflow.com/questions/22620393/