Question

J'utilise Git pour mon projet et d'essayer de suivre les meilleures pratiques:

  1. Je travaille sur un branche sujet
  2. Lorsque vous êtes prêt, je fusionner les branche sujet dans mon dev branche en utilisant git merge --squash. Cela permet de maintenir mon dev branche propre.
  3. Lorsque le dev branche est stable et l'équipe décide du temps de pour une version, nous fusionner les dev branche dans le maître branche, sans en utilisant la courge, et l'étiquette qui commettent une version de version.

Cela devrait garder notre histoire, et en utilisant gitk, nous pouvons voir où tous les commits entrent en jeu. Cependant, je veux être en mesure de voir seulement les commits appliqués au maître branche. J'ai essayé:

git log master
git show-branch

Aucune de ces show juste l'histoire du maître branche. Est-il possible de faire facilement cela?

Était-ce utile?

La solution

Si je vous comprends bien, vous voulez voir les fusions dans master, mais pas l'histoire de ces fusions. Je crois que:

git log --merges

vous donnera ce que vous voulez.

MISE À JOUR:. Ajout --first-parent doit résoudre ce problème à partir des sons de celui-ci

git log --merges --first-parent
  

- premier parent

Follow only the first parent commit upon seeing a merge commit.
     

Cette option peut donner une meilleure vue d'ensemble   lors de la visualisation de l'évolution d'un   branche de sujet particulier, parce que   se fond dans une branche de sujet ont tendance à être   uniquement sur le réglage de mise à jour   en amont de temps à autre, et ceci   option vous permet d'ignorer la   commits individuels apportés à votre   l'histoire par une telle fusion.

Autres conseils

Malheureusement, Git ne stocke pas les informations de branche pour une livraison et commits ne appartiennent à une branche. Branches dans Git sont tout simplement « déplacer les balises » dans un cours de commits et non pas une séquence de commits comme on pouvait s'y attendre.

Alors, vous pouvez en principe pas montrer commits qui appartiennent à une branche car il n'y a pas de concept dans Git.

Étant donné que Git ne stocke pas d'informations sur quelle branche est naissante à partir de laquelle un autre, il n'y a aucun moyen automatique de deviner quelle branche vous pourriez vouloir peut-être montré.

À cet égard, --first-parent ne finalement aide, d'autant qu'il est facile d'avoir plus d'un maître, par exemple. Considérez:

wc1$ git clone git://shared.com/repo
wc1$ (hack code, git commit)
wc2$ git clone git://shared.com/repo
wc2$ (hack code, git commit, git push somewhere)
wc1$ git fetch origin; git merge origin/master; git push somewhere master;

(Ne hésitez pas à prendre un projet au hasard et faire cet exercice.) Représenter graphiquement. Donc, vous ne pouvez pas représenter graphiquement de manière significative « juste une branche », même si les commits ont été étiquetés avec le nom de la branche sur laquelle ils ont été faits sur (parce que les deux sont maîtres).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top