Откат неустановленных изменений в GitHub Desktop (или Github для Windows)

Я читал десятки сообщений о переполнении стека, а также много страниц в Интернете (включая страницы справки GitHub), и мне потребовалось много часов, чтобы понять, как сделать эту сверхпростую вещь, которая, откровенно говоря, не очевидна, так что Я собираюсь ответить на свой вопрос здесь.

Я использую GitHub для Windows (update: теперь он называется Github Desktop), и я сделал кучу изменений в своих локальных файлах. Это стало таким беспорядком, что я решил, что просто хочу откат моих локальных файлов туда, где они были в последний раз, когда я совершил коммит. Я не совершал новых изменений - я просто хочу избавиться от них. Как я могу это сделать?

Ответ 1

В соответствии со временем, Github для Windows имеет огромный макияж, так что вот новый ответ. Теперь он называется Github Desktop и номера версий началось с версии 1.0.0. Поэтому, если вы используете Github Desktop v1, ваш пользовательский интерфейс будет выглядеть немного иначе.

Эта сверхсовременная, всегда скрытая небольшая функция, однако, все еще существует.

Сначала выберите свой репозиторий в выпадающем списке в левом нижнем углу в черной области. Убедитесь, что вы выбрали вкладку "Изменения". Теперь вы можете щелкнуть правой кнопкой мыши в любом месте прямоугольника, содержащего "{#} измененные файлы", и вы получите всплывающее окно с надписью "Отменить все изменения...". Щелкните это, и, прежде, вы вернетесь туда, где вы были в последний раз, когда совершили фиксацию.

Бонус: вы также можете щелкнуть правой кнопкой мыши любой из измененных файлов, чтобы получить всплывающее окно, которое позволит вам "Отменить изменения..." только для этого файла. Нажмите это, и только этот файл вернется обратно туда, где он был при последнем фиксации.

введите описание изображения здесь

Документация Github Desktop теперь включает информацию о том, как отказаться изменения. Это, однако, неверно! Когда вы щелкаете правой кнопкой мыши по отдельному файлу, всплывающее окно не дает опции "Отменить все изменения..." , поскольку их показанный снимок экрана указывает. Отбросить все изменения, которые вам нужно сделать, как я описал выше.

Ответ 2

Когда вы открываете GitHub для Windows v2.0 и выбираете свой репозиторий в крайнем левом столбце, вы увидите все свои предыдущие фиксации во втором столбце слева. Если вы выберете один из этих коммитов, в правом столбце в верхней части вы увидите "Revert", который говорит, когда вы наводите "Создать новый коммит, который возвращает изменения в этом фиксации". Я не думаю, что это то, что вы хотите сделать, так как вы не хотите возвращать изменения в этом коммите, а скорее отказываетесь от изменений, которые еще не были зафиксированы. Так что не делай этого. (Когда вы выбираете "Uncommitted changes" во втором столбце, ссылка "Revert" не существует.

"Revert" link in GUI

Есть два варианта: первое легко, а второе - простое:

Easy. Выберите свой репозиторий в крайнем левом столбце, затем щелкните значок шестеренки в правом верхнем углу и выберите "Открыть в Git Шелл". Оболочка должна открыться и находиться в директории вашего репозитория. Оттуда вы можете ввести git reset --hard, чтобы вернуть файлы, измененные с момента последнего коммита, а затем git clean -fd, чтобы удалить все файлы, добавленные со времени последнего коммита. Очевидно, вы можете ввести другие команды Git здесь.

Git Shell for entering CLI

Super easy - выберите свой репозиторий в крайнем левом столбце, а затем щелкните "Uncommitted Changes" во втором столбце, чтобы отобразить измененные файлы справа. Если вы щелкните правой кнопкой мыши по любому файлу, у вас будет опция "Отменить изменения". (Как можно было бы узнать, щелкнув правой кнопкой мыши, выйдет за рамки меня.) Если вы щелкните правой кнопкой мыши в пространстве рядом с "Файлы для фиксации", у вас будет возможность "Отменить все изменения". Щелкните это и престо, все ваши изменения будут уничтожены, а ваши локальные файлы вернутся туда, где они были в последний раз, когда вы совершили коммит.

enter image description here

Ответ 3

GitHub для Windows v3 сделал "сверхлегкий" ответ выше устаревшего, и, опять же, выяснить, что делать, просто не очевидно. На этот раз выберите свой репозиторий в крайнем левом столбце, а затем нажмите ссылку "{#} uncommitted changes" вверху слева от "History". Это должно дать вам среднюю колонку, как показано ниже. Чтобы отменить ваши незафиксированные изменения, вам нужно щелкнуть правой кнопкой мыши текст "{#} changes" над списком списка измененных файлов. (Щелчок в белом пространстве вокруг этого текста ничего не делает.) Нажмите "Отменить все изменения" и, еще раз, престо, все ваши изменения будут уничтожены, а ваши локальные файлы вернутся туда, где они были в последний раз, когда вы совершили коммит, (Кстати, щелчок правой кнопкой мыши по любому из перечисленных файлов позволит вам отменить незафиксированные изменения только для этого файла.)

Снимок экрана GitHub для Windows v3