2010-09-15 4 views
4

Je suis actuellement sur ma branche principale. J'ai besoin d'aide avec CSS mais malheureusement mon site est protégé par l'authentification. Cela rend très difficile pour les autres de venir sur mon site pour déboguer. Je prévoyais de démarrer une nouvelle branche, fixing_css, avec la première validation supprimant tous les mécanismes d'authentification. Ensuite, je pensais à valider les modifications apportées à CSS. Après cela, je veux fusionner cette branche vers le master sauf pour le premier commit (puisque je veux que mon site soit protégé par mon système d'authentification).Git: Créer une branche. Engage un groupe. Retour à la branche principale, ne veut fusionner certains commits

Comment puis-je faire cela?

Répondre

5

Vous pouvez rebasage l'ensemble de commits sur la branche master:

Si vous avez ceci:

master: A--B--C--D 
        \ 
fixing_css:  E--F--G--H 

Et vous voulez ceci:

master: A--B--C--D--F--G--H 

exécuter cette commande du fixing_css Branche:

git rebase --onto master E fixing_css 

(où E est le SHA de ce premier commit sur la branche)

La commande « rebasage » prend un ensemble de commits et les met sur une nouvelle « base ». Dans ce cas, vous dites "prendre l'ensemble des commits qui vient après E et monte jusqu'à la fin de fixing_css, et les mettre au-dessus de master".

1

En dehors de rebasage régulière, vous pouvez également utiliser le rebasage interactif pour se débarrasser de tout changement que vous ne voulez pas:

git rebase -i master 

Il va frayer un éditeur la liste de tous vos commits. Si vous voulez supprimer un commit, supprimez simplement la ligne dans votre éditeur avant d'enregistrer le fichier. De cette façon, vous pouvez supprimer autant de validations que nécessaire avant de fusionner.

Questions connexes