Использование GIT в атоме для локальной разработки

Я немного изучил git, так как он интегрирован в атом, и поэтому я могу легко отменить коммиты, которые я сделал, без необходимости постоянно делать резервные копии моего кода (если я правильно понял GIT).
Большинство из них в этих руководствах по GIT также рассказывается о Github, где вы затем можете опубликовать свою основную ветку. Но я хотел бы развивать все локально, ничего не публикуя. Поэтому гитхаб не вариант. Я хочу использовать только GIT.
В Atom единственный способ отменить сделанные вами коммиты — выполнить рабочий процесс PUSH и PULL от имени пользователя github. Поскольку я не вошел в github в атоме, я не могу сделать ничего, кроме как инициализировать git в каталоге, «подставить» определенные файлы/изменения и зафиксировать их.
Я также скачал git с официального веб-страницу и настроил ее в cmd. Как я могу отменить коммиты локально (через атом)?


person SearchingSolutions    schedule 09.03.2019    source источник
comment
@phd Но могу ли я сделать это без использования командной строки? Есть ли такая возможность в атоме?   -  person SearchingSolutions    schedule 09.03.2019
comment
@phd Соответственно изменил вопрос. Все равно спасибо.   -  person SearchingSolutions    schedule 09.03.2019


Ответы (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

Это удалит последний коммит.

person Matt    schedule 09.03.2019
comment
Спасибо! Вы знаете, как это сделать в пользовательском интерфейсе атома? - person SearchingSolutions; 09.03.2019
comment
хм.... Я только что установил 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.

person Patrick vD    schedule 16.03.2021