Git — это распределенная система контроля версий, которая помогает разработчикам сотрудничать в проектах любого масштаба.
Линус Торвальдс, разработчик ядра Linux, создал Git в 2005 году, чтобы помочь контролировать разработку ядра Linux.
- Что такое распределенная система контроля версий?
- Как проверить конфигурацию Git:
- Как кэшировать учетные данные для входа в Git:
- Как инициализировать Git-репозиторий:
- Как добавить файл в область хранения в Git:
- Как добавить все файлы в область постановки в Git
- Как добавить только определенные файлы в область постановки в Git
- Как проверить статус репозитория в Git:
- Как зафиксировать изменения в редакторе в Git:
- Как зафиксировать изменения с помощью сообщения в Git:
- Как зафиксировать изменения (и пропустить область постановки) в Git:
- Как посмотреть историю фиксации в Git:
- Как посмотреть историю коммитов, включая изменения в Git:
- Как посмотреть конкретный коммит в Git:
- Как посмотреть статистику журнала в Git’е:
- Как увидеть изменения, сделанные до фиксации, используя «diff» в Git’е:
- Как увидеть изменения с помощью команды «git add -p»:
- Как удалить отслеживаемые файлы из текущего рабочего дерева в Git:
- Как переименовать файлы в Git:
- Как игнорировать файлы в Git:
- Как вернуть нестационарные изменения в Git:
- Как вернуть поэтапные изменения в Git:
- Как внести изменения в последний коммит в Git:
- Как откатить последний коммит в Git:
- Как откатить старый коммит в Git:
- Как создать новую ветвь в Git:
- Как переключиться на только что созданную ветку в Git:
- Как вывести список ветвей в Git:
- Как создать ветку в Git и сразу же переключиться на нее:
- Как удалить ветку в Git:
- Как объединить две ветки в Git:
- Как показать журнал фиксации в виде графика в Git:
- Как показать журнал фиксации в виде графика всех ветвей в Git:
- Как прервать конфликтующее слияние в Git:
- Как добавить удаленный репозиторий в Git
- Как просматривать удаленные URL в Git:
- Как получить дополнительную информацию об удаленном репозитории в Git:
- Как перенести изменения в удаленное репо в Git:
- Как получить изменения из удаленного репозитория в Git:
- Как проверить удаленные ветки, которые отслеживает Git:
- Как получить изменения удаленного репозитория в Git:
- git log origin/main
- Как объединить удаленное репозиторий с вашим локальным репозиторием в Git:
- Как получить содержимое удаленных веток в Git без автоматического слияния:
- Как переместить новую ветку в удаленное репозиторий в Git:
- Как удалить удаленное ответвление в Git:
- Как использовать Git rebase:
- Как запустить rebase в интерактивном режиме в Git:
- Заключение
Что такое распределенная система контроля версий?
Распределенная система контроля версий — это система, которая помогает вам отслеживать изменения, внесенные в файлы вашего проекта.
Эта история изменений хранится на вашей локальной машине и позволяет вам легко вернуться к предыдущей версии проекта, если что-то пошло не так.
Git упрощает совместную работу. Каждый член команды может хранить полную резервную копию репозиториев, над которыми он работает, на своей локальной машине. Затем, благодаря внешнему серверу, такому как BitBucket, GitHub или GitLab, они могут безопасно хранить репозиторий в одном месте.
Таким образом, разные члены команды могут копировать его локально, и у всех будет четкий обзор всех изменений, сделанных всей командой.
Git имеет множество различных команд, которые вы можете использовать. И я обнаружил, что эти пятьдесят — те, которые я использую чаще всего (и поэтому их полезнее всего запомнить).
Поэтому я записал их и подумал, что было бы неплохо поделиться ими с сообществом. Надеюсь, вы найдете их полезными — наслаждайтесь.
Как проверить конфигурацию Git:
Команда ниже выдает список информации о вашей конфигурации git, включая имя пользователя и email:
git config -l
Как настроить имя пользователя Git:
С помощью приведенной ниже команды вы можете настроить имя пользователя:
git config —global user.name «Fabio»
Как настроить электронную почту пользователя Git:
Эта команда позволяет настроить адрес электронной почты пользователя, который вы будете использовать в своих коммитах.
git config --global user.email "hodardhazwinayo@test.com"
Как кэшировать учетные данные для входа в Git:
Вы можете хранить учетные данные для входа в систему в кэше, чтобы не вводить их каждый раз. Просто используйте эту команду:
git config --global credential.helper cache
Как инициализировать Git-репозиторий:
Все начинается отсюда. Первым шагом будет инициализация нового Git-репозитория локально в корне вашего проекта. Это можно сделать с помощью команды, приведенной ниже:
git init
Как добавить файл в область хранения в Git:
Команда ниже добавит файл в область постановки. Просто замените filename_here на имя файла, который вы хотите добавить в область постановки.
git add filename_here
Как добавить все файлы в область постановки в Git
Если вы хотите добавить все файлы в вашем проекте в область постановки, вы можете использовать подстановочный знак . и каждый файл будет добавлен за вас.
git add .
Как добавить только определенные файлы в область постановки в Git
С помощью звездочки в команде ниже вы можете добавить все файлы, начинающиеся с ‘fil’, в область постановки.
git add fil*
Как проверить статус репозитория в Git:
Эта команда покажет статус текущего репозитория, включая staged, unstaged и untracked файлы.
git status
Как зафиксировать изменения в редакторе в Git:
Эта команда откроет текстовый редактор в терминале, в котором вы можете написать полное сообщение о фиксации.
Сообщение о фиксации состоит из краткого резюме изменений, пустой строки и полного описания изменений после нее.
git commit
Как зафиксировать изменения с помощью сообщения в Git:
Вы можете добавить сообщение о фиксации, не открывая редактор. Эта команда позволяет указать только краткое содержание сообщения о фиксации.
git commit -m "your commit message here"
Как зафиксировать изменения (и пропустить область постановки) в Git:
Вы можете добавлять и фиксировать отслеживаемые файлы одной командой, используя опции -a и -m.
git commit -a -m"your commit message here"
Как посмотреть историю фиксации в Git:
Эта команда показывает историю фиксации для текущего репозитория:
git log
Как посмотреть историю коммитов, включая изменения в Git:
Эта команда показывает историю коммита, включая все файлы и их изменения:
git log -p
Как посмотреть конкретный коммит в Git:
Эта команда показывает конкретный коммит.
Замените commit-id на id коммита, который вы найдёте в журнале коммитов после слова commit.
git show commit-id
Как посмотреть статистику журнала в Git’е:
Эта команда заставит журнал Git показать некоторую статистику об изменениях в каждом коммите, включая изменённые строки и имена файлов.
git log --stat
Как увидеть изменения, сделанные до фиксации, используя «diff» в Git’е:
Вы можете передать файл в качестве параметра, чтобы увидеть изменения только в определенном файле.
По умолчанию git diff показывает только неотредактированные изменения.
Мы можем вызвать diff с флагом —staged, чтобы увидеть все поэтапные изменения.
git diff
git diff all_checks.py
git diff --staged
Как увидеть изменения с помощью команды «git add -p»:
Эта команда открывает приглашение и спрашивает, хотите ли вы поставить изменения на этап или нет, а также включает другие опции.
git add -p
Как удалить отслеживаемые файлы из текущего рабочего дерева в Git:
Эта команда ожидает сообщения о фиксации, чтобы объяснить, почему файл был удален.
git rm filename
Как переименовать файлы в Git:
Эта команда ставит изменения, затем ожидает сообщения о фиксации.
git mv oldfile newfile
Как игнорировать файлы в Git:
Create a .gitignore file and commit it.
Как вернуть нестационарные изменения в Git:
git checkout filename
Как вернуть поэтапные изменения в Git:
Вы можете использовать флаг опции -p, чтобы указать изменения, которые вы хотите вернуть.
git reset HEAD filename
git reset HEAD -p
Как внести изменения в последний коммит в Git:
git commit —amend позволяет изменять и добавлять изменения к последнему коммиту.
git commit --amend
!!!Примечание!!!: исправление локального коммита с помощью amend — это здорово, и после исправления вы можете перенести его в общий репозиторий. Но вы должны избегать исправления коммитов, которые уже были опубликованы.
Как откатить последний коммит в Git:
git revert создаст новый коммит, который будет противоположен всему, что было в данном коммите.
Мы можем откатить последний коммит, используя псевдоним head следующим образом:
git revert HEAD
Как откатить старый коммит в Git:
Вы можете отменить старый коммит, используя его идентификатор коммита. При этом откроется редактор, и вы сможете добавить сообщение о фиксации.
git revert comit_id_here
Как создать новую ветвь в Git:
По умолчанию у вас есть одна ветвь — основная. С помощью этой команды вы можете создать новую ветвь. Git не будет переключаться на нее автоматически — вам придется сделать это вручную с помощью следующей команды.
git branch branch_name
Как переключиться на только что созданную ветку в Git:
Когда вы хотите использовать другую или недавно созданную ветку, вы можете использовать эту команду:
git checkout branch_name
Как вывести список ветвей в Git:
Вы можете просмотреть все созданные ветви с помощью команды git branch. Она покажет список всех ветвей, пометит текущую ветвь звездочкой и выделит ее зеленым цветом.
git branch
Как создать ветку в Git и сразу же переключиться на нее:
С помощью одной команды вы можете создать новую ветку и сразу же переключиться на нее.
git checkout -b branch_name
Как удалить ветку в Git:
Когда вы закончили работу с веткой и объединили ее, вы можете удалить ее с помощью следующей команды:
git branch -d branch_name
Как объединить две ветки в Git:
Чтобы объединить историю ветви, в которой вы сейчас находитесь, с именем_ветви, вам нужно использовать команду ниже:
git merge branch_name
Как показать журнал фиксации в виде графика в Git:
Мы можем использовать опцию —graph для того, чтобы журнал фиксации отображался в виде графика. Также,
—oneline ограничит сообщения о фиксации одной строкой.
git log --graph --oneline
Как показать журнал фиксации в виде графика всех ветвей в Git:
Делает то же самое, что и команда выше, но для всех ветвей.
git log --graph --oneline --all
Как прервать конфликтующее слияние в Git:
Если вы хотите отменить слияние и начать все сначала, вы можете выполнить следующую команду:
git merge --abort
Как добавить удаленный репозиторий в Git
Эта команда добавляет удаленный репозиторий в ваш локальный репозиторий (просто замените https://repo_here на URL вашего удаленного репозитория).
git add remote https://repo_here
Как просматривать удаленные URL в Git:
Вы можете увидеть все удаленные репозитории для вашего локального репозитория с помощью этой команды:
git remote -v
Как получить дополнительную информацию об удаленном репозитории в Git:
Просто замените origin на имя удаленного репозитория, полученное в результате
выполнив команду git remote -v.
git remote show origin
Как перенести изменения в удаленное репо в Git:
Когда вся ваша работа готова к сохранению в удаленном репозитории, вы можете перенести все изменения с помощью следующей команды:
git push
Как получить изменения из удаленного репозитория в Git:
Если над вашим репозиторием работают другие члены команды, вы можете получить последние изменения, внесенные в удаленный репозиторий, с помощью следующей команды:
git pull
Как проверить удаленные ветки, которые отслеживает Git:
Эта команда показывает имена всех удаленных ветвей, которые Git отслеживает для текущего репозитория:
git branch -r
Как получить изменения удаленного репозитория в Git:
Эта команда загрузит изменения из удалённого репозитория, но не будет выполнять слияние в вашей локальной ветке (вместо этого это сделает git pull).
git fetch
Как проверить журнал текущих коммитов удаленного репозитория в Git’е
Коммит за коммитом Git строит журнал. Вы можете узнать журнал удаленного репозитория с помощью этой команды:
git log origin/main
Как объединить удаленное репозиторий с вашим локальным репозиторием в Git:
Если в удаленном репозитории есть изменения, которые вы хотите объединить с локальным, то эта команда сделает это за вас:
git merge origin/main
Как получить содержимое удаленных веток в Git без автоматического слияния:
Это позволяет вам обновлять удаленные ветки без слияния содержимого в
локальные ветки. Вы можете вызвать git merge или git checkout для выполнения слияния.
git remote update
Как переместить новую ветку в удаленное репозиторий в Git:
Если вы хотите перенести ветку в удаленный репозиторий, вы можете воспользоваться командой ниже. Только не забудьте добавить -u для создания ответвления вверх по течению:
git push -u origin branch_name
Как удалить удаленное ответвление в Git:
Если вам больше не нужна удаленная ветка, вы можете удалить ее с помощью команды ниже:
git push --delete origin branch_name_here
Как использовать Git rebase:
Вы можете перенести завершенную работу из одной ветки в другую с помощью git rebase.
git rebase branch_name_here
Git Rebase может стать действительно беспорядочным, если вы не сделаете это правильно. Перед использованием этой команды я советую вам перечитать официальную документацию здесь
Как запустить rebase в интерактивном режиме в Git:
Вы можете запустить git rebase в интерактивном режиме, используя флаг -i.
При этом откроется редактор и будет представлен набор команд, которые вы можете использовать.
git rebase -i master
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
Как принудительно выполнить push-запрос в Git:
Эта команда вызовет принудительный push-запрос. Обычно это нормально для веток pull request, потому что никто не должен был клонировать их.
Но это не то, что вы хотите делать с публичными репозиториями.
git push -f
Заключение
Эти команды могут значительно повысить вашу производительность в Git. Вам не нужно запоминать их все — именно поэтому я написал эту шпаргалку.
Спасибо за прочтение! Кстати, я Ходард Хазвинайо, старший инженер инфраструктуры и старший DevOps-инженер в области автоматизации ИТ с помощью Python & Bash Script.
Следите за мной здесь