GIT - Où ai-je la branche à partir de?
J'ai récupéré sur un vieux projet et j'ai couru la belle git status
de comprendre ce qui se passait et j'ai remarqué que beaucoup trop de branches! Je voulez faire un peu de ménage avant de commencer à travailler sur cela, mais je ne suis pas sûr de la direction générale vient de qui..
E. G. T "branchA" dérivent de "développer"? N' "branchB" dérivent de "maître" ou "branchA"??
Comment puis-je répondre à l'échantillon des questions ci-dessus?
- Essayé
gitk --all
? - double possible de Git: Trouver la branche d'un commit est venu à partir de
- Le double est vraiment un peu fragile - c'est peut-être exactement ce que vous voulez pour certaines branches, mais probablement ne couvrent pas tout. Probablement devrait avoir un lien, désolé.
- Cela ne peut être fait. Si vous voulez savoir quelque chose à propos de vos branches git n'est pas le bon outil. Branches (dans git) sont éphémères et donc très peu fiable. Un outil graphique peut vous donner des conseils, mais pas de réponse.
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de réponse canonique pour cela, puisque les branches sont simplement des pointeurs vers certaines s'engage dans un DAG. Par exemple,
master
etfoo
pourrait pointer à la même commettre l'infraction; si vous, puis de créer une branche à partir defoo
, c'est effectivement la même que la création d'une branche demaster
.Cela dit, si vous visualisez le commettre graphique (via
gitk
ou certains autres graphique historique de l'outil, vous pouvez obtenir une idée générale de l'endroit où les points de branchement sont à la validation graphique, plutôt que l'endroit où divers direction de pointeurs pointent.filter-branch
, pas que je n'ai essayé que ce soit. Compliqué de fusion semble rejeter les tentatives de créer des cycles, au moins.git merge-base montre le commit qui est l'ancêtre commun des deux branches.
Simple d'utilisation:
git merge-base <branch> <branch>
montre de la commune de commettre des deux branches.git merge-base master devel
vous dira le commit qui est l'ancêtre commun de ces deux branches.Si vous travaillez sur Windows ou Linux (GUI), il suffit d'installer le beau git extensions. Ils peuvent vous visualiser la branche /fusionne arbre parfaitement bien.
http://code.google.com/p/gitextensions/downloads/detail?name=GitExtensions207.zip&can=4&q=
Salutations,
Si vous êtes déjà sur une branche, alors vous pouvez obtenir la livraison qui est le point où il en fourche d'une autre branche, dire
master
, comme ceci:Vous pouvez utiliser un graphique de l'arborescence de la visionneuse, je suis en utilisant
gitg
pour afficher les branches et les diffs, même si je suis en utilisant la ligne de commande pour le travail réel, la plupart du temps.En tenir à une convention de nommage et vous épargner la confusion.
Lors de la création d'une branche de
master
- permet de dire, de mettre en œuvre une fonctionnalité de messagerie - vous pouvez lui donner un nommaster_emailfeature
. Alors si vous avez besoin de créer une sous-branche de cette branche pour mettre en œuvre le protocole ssl pour les e-mails, puis vous pouvez lui donner un nommaster_emailfeature_sslandtls
.Il ressort de la branche a été créée à partir de laquelle rien qu'en regardant la direction de son nom.
Si vous voulez comprendre ce qui succursale à distance à votre succursale locale dérivées à partir de, cette commande peut jeter un peu de lumière.
Faites défiler vers le bas jusqu'à ce que vous voyez "branches Locales configuré pour "git pull":" et en dessous une liste de toutes vos branches locales sont affichées et la branche distante chaque va fusionner avec.