37. Шпаргалка по Git

Обновлено: 2024-03-12
7 мин

Знакомство с Git

В последних двух постах мы узнали о системах контроля версий и некоторых основных рабочих процессах git как системы контроля версий День 35. Затем мы установили git в нашу систему, обновили и настроили. Мы также немного углубились в теорию между системой контроля версий клиент-сервер и Git, которая является распределенной системой контроля версий День 36.

Теперь мы пройдемся по некоторым командам и вариантам использования, которые мы все обычно видим в git.

Где получить помощь по git?

Будут времена, когда вы просто не сможете вспомнить или просто не знаете команду, которая вам нужна для работы с git. Вам понадобится помощь.

Само собой разумеется, что Google или любая другая поисковая система, вероятно, будет вашим первым портом захода при поиске помощи.

Во-вторых, следующим местом будет официальный сайт git и документация. git-scm.com/docs Здесь вы найдете не только подробные ссылки на все доступные команды, но и множество различных ресурсов.

Мы также можем получить доступ к этой же документации, которая очень полезна, если у вас нет подключения к терминалу. Например, если мы выбрали команду git add, мы можем запустить git add --help, и мы увидим ниже руководство.

Мы также можем в оболочке использовать git add -h, который даст нам краткий обзор доступных опций.

Мифы Git

«У Git нет контроля доступа» — вы можете уполномочить “лидера” поддерживать исходный код.

«Git слишком тяжелый» — у Git есть возможность предоставлять неглубокие репозитории, что в основном означает меньший объем истории, если у вас большие проекты.

Недостатки

Не идеально подходит для двоичных файлов. Отлично подходит для исходного кода, но не подходит, например, для исполняемых файлов или видео.

Git не удобен для пользователя, тот факт, что нам приходится тратить время на обсуждение команд и функций инструмента, вероятно, является ключевым признаком этого.

В целом, git сложно освоить, но легко использовать.

Экосистема git

Я хочу кратко рассказать об экосистеме вокруг git, но не углубляться в некоторые из этих областей, но я думаю, что важно отметить их здесь на высоком уровне.

Почти все современные инструменты разработки поддерживают Git.

  • Инструменты разработчика. Мы уже упоминали код Visual Studio, но вы найдете плагины git и интеграции в возвышенный текст и другие текстовые редакторы и IDE.

  • Командные инструменты. Также упоминаются такие инструменты, как Jenkins с точки зрения CI/CD, Slack из среды обмена сообщениями и Jira для управления проектами и отслеживания проблем.

  • Облачные провайдеры. Все крупные облачные провайдеры поддерживают git, Microsoft Azure, Amazon AWS, Google Cloud Platform.

  • Сервисы на основе Git. Затем у нас есть GitHub, GitLab и BitBucket, о которых мы поговорим более подробно позже. Я слышал об этих сервисах как о социальной сети для кода!

Шпаргалка по Git

Мы не рассмотрели большинство этих команд, но просмотрев некоторые шпаргалки, доступные в Интернете, я хотел задокументировать некоторые из команд git и их назначение. Нам не нужно запоминать все это, и с большей практикой и использованием вы выберете, по крайней мере, основы git.

Основы Git

CommandExampleDescription
git initgit init <directory>создает пустой репозиторий git в указанном каталоге.
git clonegit clone <repo>клонирует репозиторий, расположенный в , на локальный компьютер.
git configgit config user.nameопределяет имя автора, которое будет использоваться для всех коммитов в текущем репозитории, system, global, local флаг для установки параметров конфигурации.
git addgit add <directory>он подготовит все изменения в для следующего коммита. Мы также можем добавить и <.> для добавления всех изменененных файлов всего.
git commit -mgit commit -m "<message>"фиксирует промежуточный коммит, запишет , чтобы подробно описать, что точно сохраняем.
git statusgit statusвыведит список файлов, которые помещены в архив, не помещены в архив и не отслеживаются.
git loggit logОтображение всей истории коммитов в формате по умолчанию. У этой команды есть дополнительные параметры.
git diffgit diffПоказать неустановленные изменения между вашим индексом и рабочим каталогом.

Git Отмена изменений

CommandExampleDescription
git revertgit revert <commit>создает новую фиксацию, которая отменяет все изменения, сделанные в , а затем примените ее к текущей ветке.
git resetgit reset <file>убрать из индекса коммита (изменения не теряются).
git cleangit clean -nувидеть, какие файлы являются лишними, перед их непосредственным удалением
git cleangit clean -fудалить неотслеживаемые файлы и папки из рабочей копии
git cleangit clean -fdудалить их

Git переписать историю

CommandExampleDescription
git commitgit commit --amendЗаменяет последний коммит поэтапными изменениями и последним коммитом. Используйте без статуса stage, чтобы отредактировать сообщение последнего коммита.
git rebasegit rebase <base>Перебазировать текущую ветку на . может быть идентификатором фиксации, именем ветки, тегом или относительной ссылкой на HEAD.
git refloggit reflogПоказать журнал изменений в HEAD локального репозитория. Добавьте флаг –relative-date для отображения информации о дате или –all для отображения всех ссылок.

Git Branches

CommandExampleDescription
git branchgit branchПеречислите все ветки в вашем репо. Добавьте аргумент , чтобы создать новую ветку с именем .
git checkoutgit checkout -b <branch>Создайте и извлеките новую ветку с именем . Отбросьте флаг -b, чтобы проверить существующую ветку.
git mergegit merge <branch>Объединить ветку с текущей веткой.

Git Remote Repositories

CommandExampleDescription
git remote addgit remote add <name> <url>Создайте новое подключение к удаленному репозиторию. После добавления пульта вы можете использовать в качестве ярлыка для в других командах.
git fetchgit fetch <remote> <branch>Выбирает конкретную <ветку> из репозитория. Оставьте , чтобы получить все удаленные ссылки.
git pullgit pull <remote>Получить указанную удаленную копию текущей ветки и немедленно объединить ее с локальной копией.
git pushgit push <remote> <branch>Отправьте ветку на вместе с необходимыми коммитами и объектами. Создает именованную ветку в удаленном репо, если она не существует.

Git Diff

CommandExampleDescription
git diff HEADgit diff HEADПоказать разницу между рабочим каталогом и последним коммитом.
git diff –cachedgit diff --cachedПоказать разницу между поэтапными изменениями и последней фиксацией

Git Config

CommandExampleDescription
git config –global user.name <имя>git config --global user.name <имя>Определите имя автора, которое будет использоваться для всех коммитов текущим пользователем.
git config –global user.email git config --global user.email <email>Определите адрес электронной почты автора, который будет использоваться для всех коммитов текущего пользователя.
git config –global alias <алиас-имя> git config --global alias <alias-name> <git-command>Создать ярлык для команды git.
git config –system core.editor <редактор>git config --system core.editor <редактор>Установите текстовый редактор, который будет использоваться командами для всех пользователей на машине. Аргумент должен быть командой, запускающей нужный редактор.
git config –global –editgit config --global --editОткройте файл глобальной конфигурации в текстовом редакторе для редактирования вручную.

Git Rebase

CommandExampleDescription
git rebase -i git rebase -i <base>Интерактивно перебазировать текущую ветку на . Запускает редактор для ввода команд того, как каждый коммит будет перенесен в новую базу.

Git Pull

CommandExampleDescription
git pull –rebase git pull --rebase <remote>Получить удаленную копию текущей ветки и перебазировать ее в локальную копию. Использует git rebase вместо слияния для интеграции веток.

Git Reset

CommandExampleDescription
git resetgit resetСбросьте промежуточную область, чтобы она соответствовала самой последней фиксации, но оставьте рабочий каталог без изменений.
git reset –hardgit reset --hardСбросить промежуточную область и рабочий каталог, чтобы они соответствовали самой последней фиксации, и перезаписать все изменения в рабочем каталоге
git reset git reset <commit>Переместите конец текущей ветки назад к , сбросьте промежуточную область, чтобы она соответствовала, но оставьте рабочий каталог в покое
git reset –hard git reset --hard <commit>То же, что и предыдущее, но сбрасывает и промежуточную область, и рабочий каталог, чтобы они совпадали. Удаляет незафиксированные изменения и все фиксации после .

Git Push

CommandExampleDescription
git push –forcegit push <remote> --forceДелает git push, даже если это приводит к слиянию без быстрой перемотки вперед. Не используйте флаг –force, если вы абсолютно не уверены, что знаете, что делаете.
git push –allgit push <remote> --allПереместите все свои локальные ветки на указанный удаленный сервер.
git push –tagsgit push <remote> --tagsТеги не добавляются автоматически при отправке ветки или использовании флага –all. Флаг –tags отправляет все ваши локальные теги в удаленное репо.

Ресурсы