2013-08-21 6 views
2

Когда я gitk, чтобы проверить мои ветви, я обнаружил следующее:Connected филиалы в Git

Git connected branches

Я создал pretty_url, переключился на него, работал на вещи, совершенные, затем перешел на master ветви (который был чистым), затем побежал git merge pretty_url и проверил с gitk и нашел это.

Я уверен, что это не правильно и, вероятно, master не был чистым. Как я могу это исправить?

+1

@ FabioA.Correa, главная ветвь не одна линия ... – Victor

+0

@ FabioA.Correa Правильный должен иметь одну розовую линию, вот и все. Но сейчас он разветвлен на другую красную линию. – Victor

+1

См. Отредактированный вопрос. – Victor

ответ

6

Это именно то, что вы должны ожидать от слияния. Если вы хотите переустановить и перемотать вперед, вы могли бы сделать это вместо этого и имели бы прямую линию.

Пример:

До слияния, вы имели такую ​​ситуацию:

before pic

То есть, история master и branch расходились. Они делят h как обычный ancenstor. При слиянии (через git merge branch время на `Master), вы в конечном итоге с коммита с двумя родителями, чтобы объединить эту историю:

merge pic

Если это не то, что вы хотите, вы можете отменить это и получить то, что вы хотели делать что-то вроде:

git reset --hard [email protected]{1} # or whatever commit matches 'j' to undo the merge 
git checkout branch 
git rebase master   # incorporate 'i' and 'j' commits into 'branch' 
git checkout master 
git merge branch   # this merge will be a fast-forward now 

Который даст вам нормированный линейную историю вы, кажется, ищет:

fastforward pic

+0

Я не думаю, что это то, что ищет OP. Я считаю, что он хочет, чтобы вся ветвь Учителя совершала («а» до «j», «слияние»), чтобы быть в одной строке. И вся другая ветвь обязывает («k», «l») находиться в другой строке. Это логично логично. Вот связанный с этим вопрос: http://stackoverflow.com/questions/4511416/gitk-weird-history-tree – wisbucky

4

Красная линия не указывает на нечистую ветку; это просто означает, что предыдущая фиксация в master старше головы pretty_url. Здесь не нужно беспокоиться. Кроме того, git merge не работает на нечистых деревьях.

Смежные вопросы