Это иллюстрированные примечания, которые я сделал, работая через Крис Ахард S Исправить общие ошибки GIT Курс на Egghead.
Курс является отличным освежением фундаментальной структуры GIT, добавления и удаления коммитов и (критически) отмены ошибок всех видов.
Основная структура git
Крис охватывает все различные «уровни», в которых могут быть файлы GIT. Мне лично нужно было думать об этом как о пространственном стеке, чтобы понять, как файлы перемещаются между ними.
Каждый раз, когда я стремлюсь к GitHub, я вижу что -то подобное в своей голове:
Я также обнаружил, что полезно думать о «тайнике» как о боковом ящике, в который вы убираете, а затем можно «выбросить» их обратно позже.
Ветви являются указателями
Это создание ветвей GIT как «указатели», которые вы можете перемещаться, изменило то, как я думаю о них.
Мы можем перемещать указатели на разные коммиты, которые являются лишь разными версиями нашего проекта в определенный момент времени.
Git log
git log это удобная функция, которая показывает вам все ваши предыдущие коммиты и их данные. Хотя это довольно многословно.
git log -oneline гораздо проще читать, так как он показывает только хэши и сообщения о коммите
git log -Graph рисует крошечный график в терминале, показывающий ветви и слияние
Отмену ошибки
GIT Commit Andrend
GIT Commit -Amend Позволяет добавлять или изменять файлы в нашем последнем коммите, а также Сообщение о коммите
Git сброс
git reset переместит файл назад. Если вы совершили файл для постановки или локального репо, мы можем вернуть его в наш рабочий каталог.
GIT дает нам три уровня «интенсивности» для сброса – git reset - -hard , git reset -soft и смешанный.
Если вы не указываете один, Mixed – это значение по умолчанию, которая просто перемещает его из локального репо обратно в ваши рабочие файлы.
Git diff
git diff удобная утилита для просмотра того, что изменилось между двумя коммитами или двумя файлами
Вы можете сравнить два коммита, используя их названия филиалов или хэши коммита: git diff основная новая функция
Вы также можете сравнить два файла, передавая обоих имен файлов: git diff path/to/file/componenta.js path/to/file/componentb.js
Отличная голова
Отдельная голова менее болезненная, чем кажется. Это просто означает, что мы проверили коммит с использованием его конкретного имени хэша, например GIT Checkout 49DA32 Этот коммит теперь является «головой», потому что это самая последняя версия нашего проекта.
Это «отдельно», потому что мы перемещались там напрямую и не в нашей обычной структуре ветви. Мы должны «переехать» в нашу филиал с GIT Checkout -b мое новое именное имя
Приятно сейчас быть менее потерянным в лесу Гит. Я надеюсь, что некоторые из этих методов тоже сделают ваш журнал GIT менее грустным:)
Есть еще много в Курс Криса что я ушел здесь.
👁🗨 Если их трудно прочитать, вы можете скачать бесплатную версию PDF в высоком разрешении на самом курсе Анкет Dev.to ограничивает размеры изображений И это трудно сделать его читаемым здесь. Приносим извинения!
Оригинал: “https://dev.to/egghead/illustrated-notes-on-fixing-git-mistakes-1c16”