web-dev-qa-db-fra.com

Rebasez votre propre branche et force de force

Est-ce que ça va quand je fais rebaser et forcer la branche enfoncée qui n'est utilisée que par moi? Et aurai-je un problème après la fusion de cette succursale en Maître plus tard?

Quelques situations pour illustrer ceci:

  1. Nous avons maître, je dois ajouter une partie, donc:
    • git Pull Origin Master
    • git checkout -b new_feature
    • faire des changements dans ma branche
    • git pull --rebase Origin Master - parce que je ne veux pas avoir de fusion intermédiaire commettre
    • si la succursale principale a des changements, nous obtiendrons des antécédents rebasés des commits dans l'état actuel
    • git Push Origine NEW_FEATURE -F - Je suis capable de le repousser uniquement avec la force car l'historique est différent dans la branche de fonctionnalité actuelle et à distance.

Je ne la fusionne pas dans Master en fonction, car une demande de fusion est créée après cela pour cette succursale, cette action fait donc par exemple par exemple.

Et je suis absolument sûr que personne ne s'engage dans ma branche et travaille avec ma succursale, alors que je comprenne, la force de force est acceptable.

  1. La deuxième situation où je veux écraser quelques engagements:
    • git Pull Origin Master
    • git checkout -b new_feature
    • gIT COMMIT -M "TST1"
    • git Push Origine New_feature
    • gIT COMMIT-ME "TST2"
    • git rebase -i tête ~ 2 après la Rebase
    • git push origine new_feature -f

Et après cette demande de fusion à Gitlab et fusionner en maître.

5
Antony Makaruk

Une force de force dit essentiellement "oublie que la vieille branche distante existait et appelle simplement ce que je vous dis de". En ce qui concerne ce qui finit sur la branche dans le repo à distance, le fossé est équivalent.

  • Faire des choses
  • Pousser une nouvelle branche
  • Faire des choses qui changent l'histoire
  • Forcer la branche


  • Faire des choses
  • Faire des choses qui changent l'histoire
  • Pousser une nouvelle branche

Donc, si la succursale est vraiment utilisée uniquement par vous dans un seul client Repo et la copie de celle-ci sur le serveur distant est essentiellement utilisée comme sauvegarde, puis forcer la poussée est bien.

Si la succursale du serveur distant est utilisée à partir de plusieurs répéteurs clients (soit par vous-même, soit par vous-même), puis forcer la poussée peut facilement conduire à un gâchis. Lorsque l'une de ces autres repos clients tire à partir du serveur Git, vous essayera de fusionner sa version de la branche avec la version des serveurs. Cela peut entraîner des choses indésirables telles que l'historique dupliqué ou la réintroduction accidentelle du code supprimé.

4
Peter Green