Теперь у мастера есть версия без добавленной строки, с веткой mychanges она есть, но если я попытаюсь снова объединить mychanges с мастером, git выдаст сообщение «Уже обновлено».
Это потому, что ветвь mychanges
отстает от вашей master
ветви.То есть master
содержит все изменения, произошедшие в mychanges
.
Также сообщает о конфликте, если я объединяю ветку разработки с mychanges one
Наличие конфликта при объединении двух разных веток - это нормально;это просто означает, что две ветви имеют разные, противоречивые изменения в них, и что слияние не может быть автоматически завершено.Я предполагаю, что вы отредактировали файл, находящийся в ветке development
, и что git
не может сработать, если вы хотите сохранить изменения из ветки development или mychanges.
Теперь все, что я хочу сделать, это иметь возможность обновлять ветку разработки, чтобы она отражала последнюю версию разработки, но в то же время иметь возможность сохранять свои изменения.
Когда git
не может автоматически объединить (то есть не может определить, какие изменения в файле сохранить, а какие удалить при объединении), вы можете выбрать изменения самостоятельно, а затем повторно объединить ветви,Это позволяет вам выбрать, какие изменения вы хотите;если вы хотите, чтобы изменения были из ветки development
, вы можете сохранить их.Однако, если вы изменили те же строки кода , которые были изменены на development
, вы можете оставить их вместо этого.
Вы должны прочитать книгу прогитов , в частности главу три , которая научит вас веткам и, в главе 3-6, rebasing
ваши изменения сверхуиз новых изменений от development
.
Книга Progit является отличным источником информации об использовании git
и, вероятно, ответит на некоторые ваши вопросы.