как безопасно перебазировать изменения в мастере в отделенную HEAD - PullRequest
0 голосов
/ 21 ноября 2018

Я не осознавал, что до сих пор работал над отдельной веткой HEAD (a32b42b123).Эта ветвь сильно отстает от хозяина.Я сделал следующие операции, git checkout master && git pull origin master git checkout a32b42b123 && git rebase master, чтобы синхронизировать эту ветку с мастером, и заметил, что большинство изменений, которые я сделал в этой ветке, пропали.Теперь я понимаю, что такое отдельная ГОЛОВА.Но как я могу обеспечить безопасность git rebase master здесь, не стирая сделанные мной изменения?

1 Ответ

0 голосов
/ 21 ноября 2018

коммиты в Git неизменны.Если вы начали с a32b42b123 и внесли изменения, кончик вашей ветки больше не будет a32b42b123, а будет другим коммитом.Когда вы возвращаетесь к этому коммиту, как вы видели, вы теряете изменения, которые вы внесли поверх него.

Вы, конечно, можете использовать отдельную голову, но это просто усложняет жизньнет (хорошая) причина, особенно когда филиалы такие дешевые.Просто создайте именованную ветку из этого коммита и внесите в нее изменения:

$ git checkout a32b42b123 -b mybranch 
# make some changes, commit
$ git fetch origin
$ git rebase origin/master
...