2014-09-11 3 views
2

Я сделал пересоединение моей ветви мастера, но то, что я ожидал, не произошло. Это, вероятно, пробел в моем понимании, поэтому позвольте мне объяснить мою установку:Ветвь Git не может видеть изменения после перезагрузки мастера

я следующие ветви:

       4---O---X 
          /
          3---O 
         /
        2---O 
       /
      1---O---O 
     /
O---O---N---O---O---O 

Когда проверили на 4 ветви мой сайт был запущен с каждым изменением я сделал во всех других ветвях, включая ведущую ветвь до точки, была создана 1-я ветвь (N). Как вы можете видеть, я добавил еще несколько коммитов к основной ветке после 1-й ветви, поэтому они не были доступны, если на последней ветке (или на любых ветвях, кроме master).

Я хотел видеть, как другие коммиты на последней ветке, сохраняя ветви, как они есть на данный момент, так же как и перезагрузка мастера, так что кончик 1-й ветви будет указывать на конец ведущей ветви так:

          4---O---X 
             /
             3---O 
            /
           2---O 
          /
         1---O---O 
        /
O---O---N---O---O---O 

Я сделал это, проверяя на 1-й ветви и делать rebase master. Это, похоже, сработало, но я не вижу более поздних коммитов на хозяине (прошлый N) в 4-й ветке. Это то, что, как я думал, произойдет. Я вижу их только в 1-м отделении.

Так что, мои вопросы, почему я не ожидал, что работа по сокращению не будет ожидаться? и как это сделать, я получаю изменения в мастерском прошлом N-точки, чтобы появиться в моих 4-м, 3-м и 2-м ветвях.

ответ

3

После перебазирования 1 на master, вы должны:

  • Rebase 2 на 1
  • перебазироваться 3 на 2
  • перебазироваться 4 на 3

Но так как это вызывает вас проблемы, альтернативы y, вы можете использовать ветвь выпуска, в которой вы можете объединиться со всеми ветвями, которые хотите включить в свою версию. Или, вы могли бы выбрать вишню из мастера в ветку-4. Или вы можете слиться с мастером на ветку-4.

Но я боюсь, что если вы хотите, чтобы ваш график был похож на тот, который вы показываете в своем вопросе, у вас нет альтернативы 4 операциям переадресации.

В общем, чтобы лучше понять, как ваша фиксация график выглядит, попробуйте использовать:

$ git log --graph --oneline --all 

Или лучше, попробуйте один из git front-ends

+0

Благодарим вас за это.Для меня будет нагрузка конфликтов, чтобы исправить это. Не могли бы вы объяснить, зачем мне это нужно? У меня возникли проблемы с визуализацией того, как выглядит моя текущая установка ветви, что бы восстановить каждую ветвь, исправив ее. И есть ли еще один способ, которым я мог бы достичь того, чего хотел, без переустановки? – superphonic

3

Если вы перебазирования только ветвь 1, новых деревьев выглядит как это:

       4---O---X 
          /
          3---O 
         /
        2---O 
       /
      1---O---O 
     /   
O---O---N---O---O---O 
        \ 
         1' 

1' является кончиком нормированных ветвей 1. так как вы можете видеть, ветви 2, 3 и 4 не изменились с операцией перебазирования (который правильно, так как вы просто переделали ветку 1). Если вам нужны только последние изменения от мастера в ветке 4, тогда достаточно будет только переустановить ветвь 4 и сохранить остальные 3 в текущем состоянии.

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