Git ветвь все еще на той же линии, что и master

Я получаю что-то неожиданное в мерзавце. Я создал ветку от master, однако, когда я выполняю коммиты на новой ветке, создается впечатление, что они происходят в той же строке кода, что и master...

введите описание изображения здесь

введите описание изображения здесь

Как вы можете видеть, с левой стороны находится строка кода для master (темно-синий), а справа вверху мы видим Sprint_15 - ветвь, взятую из master, которая, кажется, имеет коммиты в одной строке... I Я не уверен, почему это происходит. Я ожидал бы увидеть, как код расходится в новую строку, поскольку функции объединяются в Sprint_15, а не в master...

Я думаю, что слияние Sprint_14 и Sprint_15 вместе сделало что-то необычное для истории, но я не уверен почему.

Я все еще довольно новичок в Git, поэтому некоторые из его основ все еще смущают меня.

2 ответа

Решение

Кажется, вы немного ошибаетесь в том, как работает git (что нормально, потому что вы сказали, что вы новичок в git)

Каждая ветвь не обязательно получает свою собственную линию. Если ваша ветка Sprint_15 имеет свою базу как master а также Sprint_15 любое количество коммитов впереди master тогда они будут разделять одну и ту же линию. Как только master получает новый коммит, тогда я думаю, вы увидите, что вы ожидаете.

Вы можете проверить это в отдельном репозитории Git, как это.

$ 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"

Теперь, если вы используете тот же инструмент для просмотра своего репо, вы должны увидеть только одну строку, например: та же линия

Теперь вернитесь в ветку master и сделайте еще один коммит:

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

Теперь вы увидите, что каждая ветка имеет свою собственную линию, как вы ожидали, вот так: введите описание изображения здесь

Это предположение, но я полагаю, что причина, по которой ваша текущая ветвь функций находится на одной линии с master потому что в настоящее время эта ветвь опережает master на некоторое количество коммитов. Чтобы проверить это, попробуйте сделать последние master ветка. Если это меняет вашу конфигурацию так, что Sprint_15 появляется отдельной строкой, тогда моя догадка оказалась верной.

В любом случае, вы всегда можете проверить такие вещи прямо из Git Bash, если у вас есть сомнения.

Другие вопросы по тегам