2017-06-05 6 views
1

Je reçois quelque chose d'inattendu dans l'arbre git. J'ai créé une branche hors de maître, mais alors que je joue commits sur la nouvelle branche, il semble que ceux-ci se déroulent dans la même ligne de code en tant que maître ...La branche Git est toujours sur la même ligne que le maître

enter image description here

enter image description here

Comme vous pouvez le voir, du côté gauche, il y a la ligne de code pour master (bleu foncé) et tout en haut, on peut voir Sprint_15 qui est une branche provenant de master qui semble avoir été validée sur la même ligne ... Je ne suis pas sûr de la raison pour laquelle cela se produit. Je m'attendrais à voir le code diverger dans une nouvelle ligne puisque les caractéristiques sont fusionnées dans Sprint_15 et non maître ...

Ma pensée est que en fusionnant Sprint_14 et Sprint_15 ensemble cela a fait quelque chose de génial à l'histoire mais je suis pas certain de pourquoi.

Je suis encore assez nouveau à git donc certains de ses fondements me confondent encore.

Répondre

1

Il semble que vous êtes un peu trompé sur la façon dont fonctionne git (ce qui est normal parce que vous avez dit que vous êtes nouveau à git)

Chaque branche n'obtient pas nécessairement sa propre ligne. Si votre branche Sprint_15 a sa base comme master et Sprint_15 est un nombre quelconque de commissions devant master alors ils partageront la même ligne. Dès que master obtient un nouveau commit, je pense que vous verrez ce que vous attendez.

Vous pouvez tester ceci dans un dépôt séparé comme celui-ci.

$ mkdir testing && cd testing 
$ git init # should put you on master branch by default 
$ touch testFile.txt 
$ git add -A 
$ git commit -m "initial commit" 
$ git branch newBranch 
$ git checkout newBranch # switch from master to newBranch 

### modify the testFile.txt in some way and then... 
$ git add -A 
$ git commit -m "first commit on newBranch" 

Maintenant, si vous utilisez le même outil pour regarder votre pension, vous devriez voir une seule ligne, comme ceci: same line

Maintenant, retournez à la branche principale et faire une autre commettras:

$ git checkout master 
### make another change to testFile.txt 
$ git add -A 
$ git commit -m "second commit on master" 

maintenant, vous verrez chaque branche ayant sa propre ligne comme vous attendiez, comme ceci: enter image description here

+0

cela semble l Comme la bonne réponse, merci pour l'explication! –

0

Ceci est une spéculation, mais je suggère que la raison pour laquelle votre branche de fonctionnalité actuelle semble être sur la même ligne que master est parce que cette branche est actuellement en avance de master par un certain nombre de commits. Pour tester cela, essayez de tirer sur la dernière branche master. Si cela change votre configuration de sorte que Sprint_15 apparaît comme une ligne distincte, alors mon intuition était correcte. Dans tous les cas, vous pouvez toujours vérifier ces choses directement à partir du Git bash en cas de doute.