37. Шпаргалка по Git
Содержание
Знакомство с 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
Command | Example | Description |
---|---|---|
git init | git init <directory> | создает пустой репозиторий git в указанном каталоге. |
git clone | git clone <repo> | клонирует репозиторий, расположенный в |
git config | git config user.name | определяет имя автора, которое будет использоваться для всех коммитов в текущем репозитории, system , global , local флаг для установки параметров конфигурации. |
git add | git add <directory> | он подготовит все изменения в |
git commit -m | git commit -m "<message>" | фиксирует промежуточный коммит, запишет |
git status | git status | выведит список файлов, которые помещены в архив, не помещены в архив и не отслеживаются. |
git log | git log | Отображение всей истории коммитов в формате по умолчанию. У этой команды есть дополнительные параметры. |
git diff | git diff | Показать неустановленные изменения между вашим индексом и рабочим каталогом. |
Git Отмена изменений
Command | Example | Description |
---|---|---|
git revert | git revert <commit> | создает новую фиксацию, которая отменяет все изменения, сделанные в |
git reset | git reset <file> | убрать |
git clean | git clean -n | увидеть, какие файлы являются лишними, перед их непосредственным удалением |
git clean | git clean -f | удалить неотслеживаемые файлы и папки из рабочей копии |
git clean | git clean -fd | удалить их |
Git переписать историю
Command | Example | Description |
---|---|---|
git commit | git commit --amend | Заменяет последний коммит поэтапными изменениями и последним коммитом. Используйте без статуса stage, чтобы отредактировать сообщение последнего коммита. |
git rebase | git rebase <base> | Перебазировать текущую ветку на |
git reflog | git reflog | Показать журнал изменений в HEAD локального репозитория. Добавьте флаг –relative-date для отображения информации о дате или –all для отображения всех ссылок. |
Git Branches
Command | Example | Description |
---|---|---|
git branch | git branch | Перечислите все ветки в вашем репо. Добавьте аргумент |
git checkout | git checkout -b <branch> | Создайте и извлеките новую ветку с именем |
git merge | git merge <branch> | Объединить ветку |
Git Remote Repositories
Command | Example | Description |
---|---|---|
git remote add | git remote add <name> <url> | Создайте новое подключение к удаленному репозиторию. После добавления пульта вы можете использовать |
git fetch | git fetch <remote> <branch> | Выбирает конкретную <ветку> из репозитория. Оставьте |
git pull | git pull <remote> | Получить указанную удаленную копию текущей ветки и немедленно объединить ее с локальной копией. |
git push | git push <remote> <branch> | Отправьте ветку на |
Git Diff
Command | Example | Description |
---|---|---|
git diff HEAD | git diff HEAD | Показать разницу между рабочим каталогом и последним коммитом. |
git diff –cached | git diff --cached | Показать разницу между поэтапными изменениями и последней фиксацией |
Git Config
Command | Example | Description |
---|---|---|
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 –edit | git config --global --edit | Откройте файл глобальной конфигурации в текстовом редакторе для редактирования вручную. |
Git Rebase
Command | Example | Description |
---|---|---|
git rebase -i | git rebase -i <base> | Интерактивно перебазировать текущую ветку на |
Git Pull
Command | Example | Description |
---|---|---|
git pull –rebase | git pull --rebase <remote> | Получить удаленную копию текущей ветки и перебазировать ее в локальную копию. Использует git rebase вместо слияния для интеграции веток. |
Git Reset
Command | Example | Description |
---|---|---|
git reset | git reset | Сбросьте промежуточную область, чтобы она соответствовала самой последней фиксации, но оставьте рабочий каталог без изменений. |
git reset –hard | git reset --hard | Сбросить промежуточную область и рабочий каталог, чтобы они соответствовали самой последней фиксации, и перезаписать все изменения в рабочем каталоге |
git reset | git reset <commit> | Переместите конец текущей ветки назад к |
git reset –hard | git reset --hard <commit> | То же, что и предыдущее, но сбрасывает и промежуточную область, и рабочий каталог, чтобы они совпадали. Удаляет незафиксированные изменения и все фиксации после |
Git Push
Command | Example | Description |
---|---|---|
git push | git push <remote> --force | Делает git push, даже если это приводит к слиянию без быстрой перемотки вперед. Не используйте флаг –force, если вы абсолютно не уверены, что знаете, что делаете. |
git push | git push <remote> --all | Переместите все свои локальные ветки на указанный удаленный сервер. |
git push | git push <remote> --tags | Теги не добавляются автоматически при отправке ветки или использовании флага –all. Флаг –tags отправляет все ваши локальные теги в удаленное репо. |