Как отменить незафиксированные изменения в SourceTree?
Я новичок в среде Git и использую BitBucket с SourceTree на Mac. Все, что я хочу сейчас сделать - это отменить изменения, внесенные с момента последнего коммита Как мне это сделать? Я не нашел ничего подобного "отменить изменения", и прямое извлечение из последнего коммита, похоже, не работает. Решения, сделанные с помощью графического интерфейса или командной строки, будут хорошими. Спасибо.
9 ответов
Я люблю использовать
git stash
Это хранит все незафиксированные изменения в тайнике. Если вы хотите отменить эти изменения позже, просто git stash drop
(или же git stash pop
восстановить их).
Хотя технически это не "правильный" способ отменить изменения (как отмечали другие ответы и комментарии).
На SourceTree для Mac щелкните правой кнопкой мыши файлы, которые вы хотите удалить (в списке " Файлы в рабочем дереве"), и выберите " Сброс".
На SourceTree для Windows щелкните правой кнопкой мыши файлы, которые вы хотите удалить (в списке " Изменения рабочей копии"), и выберите " Отменить".
На git вы бы просто сделали:
git reset --hard
отменить изменения, внесенные в версионные файлы;
git clean -xdf
стереть новые (неотслеживаемые) файлы, в том числе проигнорированные (x
опция). d
также удалить неотслеживаемые каталоги и f
заставить.
Следуйте инструкциям, чтобы отменить несколько незавершенных изменений в Sourcetree.
В новой версии Sourcetree нет кнопки -Reset-, как упоминалось в предыдущем ответе. Таким образом, выполните следующие 5 шагов для решения.
- Щелкните правой кнопкой мыши « Состояние файла » и выберите « Сбросить ... ».
- Выберите файлы . Если хотите, вы можете выбрать их все, как показано на изображении ниже.
- Щелкните « Сбросить все ».
- Снова нажмите « Сбросить все ».
- Нажмите « Сбросить ».
Отличная работа..! Больше не нужно отбрасывать 302 файла.
На неподготовленном файле нажмите на три точки справа. Как только вы нажмете на нее, появится всплывающее меню, где вы можете затем Discard file
,
В графическом интерфейсе sourcetree нажмите на рабочий каталог, щелкните правой кнопкой мыши файл (ы), которые вы хотите удалить, затем нажмите Отменить
Хорошо, я только что заметил, что мой вопрос уже был дан в заголовке вопроса.
Для удаления файлов используйте
git reset HEAD /file/name
И отменить изменения в файле
git checkout -- /file/name
Если у вас есть пакет файлов внутри папки, вы можете отменить всю папку
git checkout -- /folder/name
Обратите внимание, что все эти команды уже отображаются, когда вы git status
Здесь я создал фиктивный репо и перечислил все 3 возможности
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: test
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: test2
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# test3
Итак, в исходном дереве Windows это просто, на macOS я тоже какое-то время смотрел...
Нажмите Command + Shift + R, в то время как в исходном дереве будет показано скрытое всплывающее окно, которое позволит вам удалить отдельные файлы ИЛИ ВСЕ! Почему это скрыто? Мы никогда не узнаем.. но это работает]1
Сделайте как следует,
- Нажмите на
commit
- Выбрать все, нажав
CMD+A
что ты хочешьdelete or discard
Right click
на выбранных незафиксированных файлах, которые вы хотите удалить- Выбрать
Remove
из раскрывающегося списка
Это Ctrl+ Shift+r
Для меня был только один вариант отказаться от всего.