9
votes

Git fusionne-t-il réappliquer une nouvelle demande sur un autre commit?

J'ai 15 ans et je viens de commencer à utiliser des systèmes de contrôle de source pour gérer mon code un peu mieux, alors je suis un peu nouveau à ce sujet. Maintenant, j'ai ce référentiel: xxx

Je veux revertir ici: xxx

g est équivalent à effectuer des commits [c] et [e] sur [f] . Ceci est GIT Checkout Master; git fusion développement , non?


1 commentaires

15 ans en utilisant git, génial! +1


4 Réponses :


1
votes

vous voulez GIT Checkout Master; GIT Fusionner développer .

Ceci est parce que git fusion prend le nom d'une branche que vous souhaitez fusionner dans la branche actuellement vérifiée . Ainsi, vous vérifiez la branche de destination souhaitée (MASTER), puis fusionnez l'autre branche (développez).

Si vous regardez dans la première section "Description" sur le git-fusion page man , vous verrez un diagramme presque identique à la vôtre (bien que partit verticalement) qui décrit cela.


0 commentaires

0
votes

C'est GIT Checkout Master Pour obtenir la branche 'Master', puis Git Fusion Développer Pour fusionner "Développer" la branche " Master 'Branche.


0 commentaires

1
votes

Une autre excellente aide sur la fusion est http://progit.org/book/ch3-2 .html et http://gitref.org/branching/#merge . < / p>


0 commentaires

6
votes

La photo que vous avez dessinée ressemble au résultat de git fusion , mais votre description de ce que vous voulez faire des sons comme Git Rebase .

emprunter à partir du < Un href = "http://book.git-scm.com/4_rebasing.html" rel = "NOREFERRER"> "Rebasing" Chapitre du livre communautaire GIT, si vous êtes sur le mywork branche et dire xxx

vous obtiendrez

 Histoire de fusion Git

Pensez à une fusion comme engloutissant deux instantanés différents: Dans ce cas, C4 et C6 sont venus ensemble pour faire C7.

Rebase crée un arbre Cela ressemble à C7, mais son histoire semble complètement différente. Dites au lieu de la fusion, vous avez donné la commande xxx

vous obtiendriez

 text alt

Lorsque vous vous souhaitiez," J'aimerais vraiment avoir créé la succursale mywork de C2, ' Git Rebase est le djinni qui l'accordera.

Vous pouvez également penser à la Rebase comme coupant une branche de votre histoire et la transplantant sur un point différent. Ne manquez pas le changement subtil de C5 et C6 à C5 'et C6'. Bien que les arbres auront la même chose, ils auront des parents différents, changeant ainsi leurs identités git.


2 commentaires

Disons qu'aucun deux commits toucher le même fichier. Vous seriez enrouler avec le même résultat si vous avez fusionné ou rebasé, non?


@WXYZ Oui, les arbres résultants seront les mêmes, mais leurs histoires seront différentes comme schémrées ci-dessus. Utilisation de Git Rebase peut aider à garder votre histoire linéaire.