4

Я сделал так много изменений во многих файлах в моем локальном репозитории git.Переключение Git-branch всех неустановленных изменений

Но когда я переключил ветку с помощью mac Git-Client без внесения изменений, появилось предупреждающее окно о том, что есть незафиксированные изменения, поэтому он прекратит выполнение операции.

Я думал, что не могу переключиться на другую ветку, не совершая. Но произошло то, что все мои изменения просто исчезли.

Я видел состояние с помощью git status терминала и его ответ был

На ветке branchname Ваша ветвь уточненный с «происхождения/branchname».

ничего не совершить, рабочий каталог чистой

Я пытался узнать, если Git-клиент сохраняет его как тайник с использованием git stash и ответ был

Нет локальных изменений для сохранения

Я не мог восстановить незафиксированные изменения этой ветки!

ответ

2

В соответствии с этим blog, вы должны добавить любые новые файлы в индекс до git stashing.

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

This question также представляется актуальным, в частности ответ и комментарии.

«Вам нужно чистое состояние, чтобы менять ветви». true, только если изменение ветки влияет на «грязные файлы».

А потом этот

Для метода копить, я напечатал «мерзавец тайник сохранить», «мерзавец контроль otherbranch», а затем, наконец, «мерзавец копить поп».

Я не знаком с клиентом GitHub Mac, но он должен использовать команды git под этим, поэтому он прерывается. Единственный способ переключить ветки, когда файлы загрязнены, - это сделать git checkout -f <branch>.

Я протестировал клиента GitHub Mac и нашел его волшебным автоматическим приложением при переключении ветвей. Это confirmed in the documentation.

+0

Можно ли восстановить потерянные изменения? – Shajo

+1

Это не звучало хорошо, основываясь на том, что вы сказали. Тем не менее, я действительно удивлен, что он сказал о прекращении операции, но все же перезаписал ваши изменения. Я сделаю несколько тестов на своей машине, чтобы узнать, что произойдет. – jcragun

+0

Я устал, чтобы воспроизвести ошибку. Я мог сделать это два раза подряд, но после этого я не смог воспроизвести ошибку – Shajo

3

Я хотел бы указать, что вы должны использовать git stash list, чтобы увидеть, что клиент git положил что-нибудь в кошельке.мерзавец тайник представляет собой сокращенную мерзавца тайника сохранить

+0

@ ferengee- Спасибо, я хотел бы знать, как восстановить потерянные изменения! – Shajo

+0

Если у вас есть какие-либо изменения, и вы хотите применить их к текущей ветке. используйте «git stash pop», как отметил @jcragun (см .: http://git-scm.com/docs/git-stash) – ferengee

+0

Я ничего не хранил с помощью git-stash ... Не будет git client auto сохранили изменения где-нибудь, что мы можем получить к нему доступ с помощью какой-либо команды git? – Shajo

0

Я просто была такая же проблема. Я новичок в git ... я создал ветку, и на следующий день я обнаружил, что не работал в созданной ветке. Мои изменения не были выполнены. Я попытался их совершить (git add. И git commit -m "..."), но я понял, что вы уже в курсе событий, и нечего совершать. Я думал, это может быть из-за того, что моя работа была отключена во второй день. На данный момент моя работа была там, просто не совершена. поэтому я переключил ветви на свою начальную ветвь. Когда я это сделал - проект обновился, и вся моя работа исчезла. git stash list ничего не возвращает

Возвращение к мастеру, не имеет моих изменений. У моей ветви нет изменений ... Я просто потерял около двухсот долларов кода.

Единственное, что я помню, было то, что когда я сделал git branch , он перечислил HEAD, где я был.

Я думаю, что моя работа ушла, и я не уверен, что я сделал не так ... Я понимаю, что начал работать в филиале в День 1, и это была моя ошибка, чтобы не гарантировать, что я все еще в этой ветке День 2 ... но где-то вдоль линий я писал код в месте, которое не могло его зафиксировать.

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