Я немного изучил git, так как он интегрирован в атом, и поэтому я могу легко отменить коммиты, которые я сделал, без необходимости постоянно делать резервные копии моего кода (если я правильно понял GIT).
Большинство из них в этих руководствах по GIT также рассказывается о Github, где вы затем можете опубликовать свою основную ветку. Но я хотел бы развивать все локально, ничего не публикуя. Поэтому гитхаб не вариант. Я хочу использовать только GIT.
В Atom единственный способ отменить сделанные вами коммиты — выполнить рабочий процесс PUSH и PULL от имени пользователя github. Поскольку я не вошел в github в атоме, я не могу сделать ничего, кроме как инициализировать git в каталоге, «подставить» определенные файлы/изменения и зафиксировать их.
Я также скачал git с официального веб-страницу и настроил ее в cmd. Как я могу отменить коммиты локально (через атом)?
Использование GIT в атоме для локальной разработки
Ответы (2)
через атом или интерфейс командной строки
Я покажу вам два варианта интерфейса командной строки.
Начнем с нового репозитория.
$ mkdir how_to_undo_stuff_in_git
$ cd how_to_undo_stuff_in_git
$ git init # Initialize git (only needed once)
Сначала мы создадим один файл myfile
с содержимым foo
.
$ echo foo > myfile
$ git add myfile
$ git commit -m "Add foo content"
Далее мы собираемся применить второй коммит, который мы хотим отменить.
$ echo bar >> myfile
$ git add bar
$ git commit -m "Add bar content (bad commit)"
Использование «возврата»
Команда git revert
может «отменить» коммит за вас. Он делает это, применяя новую фиксацию, которая отменяет ваши изменения.
Просто запустите
$ git revert HEAD
Теперь вы можете проверить содержимое myfile
и увидеть, что строка «bar» исчезла. Вы также можете запустить git log
, и это должно выглядеть так
Author: Alan Turing <[email protected]>
Date: Sat Mar 9 15:28:51 2019 +0000
Revert "bar content"
This reverts commit bc483fc6fd069c70f6822a8b840f74ced64d32c8.
commit bc483fc6fd069c70f6822a8b840f74ced64d32c8
Author: Alan Turing <[email protected]>
Date: Sat Mar 9 15:28:35 2019 +0000
bar content
commit f6450431be631220210eb83c152d907058a6337d
Author: Alan Turing <[email protected]>
Date: Sat Mar 9 15:27:23 2019 +0000
foo content
Используя «сброс» (будьте осторожны!)
git
также предлагает возможность действительно «стереть» фиксацию, в отличие от создания новой фиксации, которая отменяет предыдущую фиксацию. Будьте осторожны при запуске git reset
, потому что вы действительно можете потерять часть своей работы, если случайно предоставите ему неправильные аргументы. Взято с: https://ohshitgit.com/#accidental-commit-master
$ git reset HEAD~ --hard
Это удалит последний коммит.
atom
и попытался это выяснить. К сожалению, мне не удалось сделать это через атомный интерфейс.
- person Matt; 09.03.2019
Одна из проблем здесь заключается в том, что помимо основных функций git почти всегда требует использования командной строки. Я, например, не слишком возражаю, так как это заставляет вас больше узнавать о том, что конкретно делает каждая функция, а некоторые функции git могут нанести ущерб репозиторию при неправильном использовании. Короче говоря, если вы собираетесь широко использовать git, возможно, вы захотите как можно раньше освоиться с командной строкой.
Более прямое рассмотрение вашего вопроса: при отмене одной (или нескольких) коммитов типичным решением будет использование git revert
или git reset
для перезаписи/отката фиксации. (Подробнее об этих двух командах см. Ответ Мэтта)
Однако, глядя на комментарии, кажется, что вы ищете способ сделать это, встроенный прямо в Atom. К счастью, похоже, что в пакете github есть кнопка отменить. Он находится в истории коммитов в правом нижнем углу панели git. При использовании его один или два раза похоже, что он сбрасывается до предыдущей фиксации, а также сохраняет и размещает изменения из отмененной фиксации. Кажется, это то, что вы хотите. Однако будьте осторожны, если когда-либо использовали это в коммите, который вы уже отправили на удаленный сервер. Вам, вероятно, потребуется объединить любые дальнейшие изменения, а сброс удаленного коммита (пока это возможно) крайне не рекомендуется.
Если вы спрашивали более широко (помимо git revert
/git remove
), то у вас есть несколько дополнительных вариантов:
Во-первых, у вас есть такие пакеты, как git-plus и git-control, которые реализуют дополнительные функции git в Atom. git-plus не требует от вас открытия терминала, но, похоже, требует базового понимания того, как работают функции и какие параметры требуются.
Кроме того, если вы решите начать использовать командную строку, существуют пакеты, реализующие терминал прямо в Atom. Это я использую. Это единственный известный мне способ использовать git в пределах его возможностей непосредственно из Atom.