2013-07-18 3 views
1

У меня есть webapp, где новая функция была объединена с веткой разработки и готова к объединению для освоения и развертывания оттуда. Это довольно сложная функция, и я должен быть в состоянии чисто вернуться, если что-то ведет себя неожиданно.Восстановить после слияния --squash

Я планирую это:

git checkout master 
git merge --squash develop 
git commit -m 'Merged...etc' 

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

git checkout master 
git revert HEAD 

Однако, если это необходимо, мне нужно будет решить проблему в разработке и вновь объединить в более поздний срок , И я прочитал это в git help revert:

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

Что наводит на мысль, я не мог бы быть в состоянии повторно объединить тот же код на более поздний срок , Или использование -squash означает, что это не считается фиксацией слияния (поскольку фиксация является отдельной транзакцией), и я могу повторно объединиться в будущем.

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

ответ

2

.

TL; DR: Чтобы слить изменения после повторного слияния, вам нужно отменить возврат (или, может быть, что-то другое).

Это, в вашем случае, вы не создадите фиксацию слияния. У слияния есть 2 (или более) родителя. git merge --squash && git commit создаст фиксацию с одним родителем.

+0

Я думал, что это не будет фиксация слияния, но он хотел получить некоторую уверенность, поэтому благодарим за это. Надеюсь, все будет хорошо, и мне не нужно будет вообще возвращаться ... – markdwhite

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