Предположим, что я на ветке master
, и я начинаю вносить некоторые изменения.
Я вношу изменения в файл, который уже открыт в Emacs (поэтому под капотом, когда происходят проверки, Emacs не знает, если я не вернусь-буфер постоянно).
Файл существовал в ветке other_branch
, который позже должен был быть объединен с master
. Но файл не существовал в master
, пока я случайно не сохранил его из Emacs.
Изменения не завершены, но я понимаю, что я не должен был вносить изменения в master
и планировал проверить другую ветку перед началом изменений.
Я не хочу потерять текущую работу, но также не хочу передавать ее master
.
Я попытался использовать git stash
, за которым следует git checkout other_branch
, но это дает мне ошибку, говоря, что из-за незафиксированных изменений мне не разрешено переключать ветки на other_branch
:
[email protected]:~$ git checkout other_branch
error: The following untracked working tree files would be overwritten by checkout:
some_file
Please move or remove them before you can switch branches.
Aborting
Файлы, которые я начал (случайно) изменяя в master
, уже существуют в other_branch
, поэтому просто проверка other_branch
приведет к уничтожению моей копии рабочего каталога, с изменениями, правильно?
Я попробовал stash
, который, похоже, зачеркнул изменения, но затем я получил сообщение об ошибке выше, когда я пытался проверить.
Резюме
-
проверить новую ветвь,
other_branch
отслеживаниеmaster
. -
создайте новый файл
test.txt
вother_branch
и откройте его для редактирования в Emacs. Зафиксируйтеother_branch
. -
обратно в терминал, мастер проверки.
-
Вернувшись в Emacs, вы забыли, что теперь находитесь на хозяине, внесите некоторые изменения в
test.txt
и сохраните файл. Это абсолютно новый файл, относящийся кmaster
.
Как вы можете получить эти изменения в other_branch
?