Git — это распространенная система контроля версий (СКВ), используемая большинством программистов. В этом блоге я собираюсь поделиться некоторыми советами с основными командами, чтобы облегчить использование git.
Чтобы начать работу с git, нам нужно понять, как все работает локально в системе при использовании git.
Эта диаграмма поможет понять, что на самом деле происходит при локальном использовании git. Начиная с рабочей области, в рабочей области находятся файлы, которые не обрабатываются git’ом, это место, где хранятся все неотслеживаемые файлы. Staging area содержит файлы, которые будут частью следующего коммита. Репозиторий содержит все коммиты проекта. Используя репозиторий, мы можем получить файлы в том виде, в котором они были в определенный момент времени.
Команды Git:
1. Инициализация git в вашей директории
Самый первый шаг, который вам нужно сделать, — это инициализировать репозиторий.
git init
2. git config
Эта команда поможет вам установить имя пользователя и адрес электронной почты пользователя, которые будут использоваться для ваших коммитов соответственно.
git config --global user.name "Shivam164"
git config --global user.email "sp...oo6@gmail.com"
3. git status
Эта команда используется для просмотра состояния рабочей области и области хранения.
git status
3. git add
Эта команда используется для добавления файлов в область постановки.
Чтобы перенести все файлы, которые не отслеживаются в рабочей области, в область хранения, мы используем:
git add .
Здесь ‘.’ указывает на перенос всех неотслеживаемых файлов.
Для указания файлов, которые должны быть отслежены, можно использовать их имя файла:
git add abc.txt
Для того, чтобы поставить только abc.txt.
4. git commit
Команда git commit фиксирует снимок изменений в проекте. Как правило, мы сохраняем короткое сообщение с каждым коммитом для того, чтобы понимать этот коммит в будущем, а также для понимания другими людьми.
⇒ Хорошо, если коммиты будут в настоящем времени и короткими (около 50 символов).
git commit -m "first commit"
Здесь ‘-m’ означает сообщение.
Для постановки всех изменений и их фиксации одной командой мы можем использовать:
git commit -am "committing all changes"
Бывают случаи, когда вы не можете объяснить свою работу в нескольких словах, даже в таком случае не стоит писать очень большое сообщение в одну строку, потому что такие сообщения будет трудно читать на GitHub. Для такого сценария после постановки какого-либо файла мы не просто делаем прямой коммит, как описано выше. Мы пишем:
git commit
Когда мы пишем git commit без -m. Вы увидите консольный текстовый редактор, известный как Vim.
Теперь вы можете начать писать ваше сообщение о фиксации здесь, вам просто нужно нажать I (INSERT). И даже внутри длинного сообщения, вы должны оставить короткую строку в начале перед длинным сообщением, затем после пробела вы можете написать ваше длинное сообщение. Когда вы закончите писать сообщение, вы можете закрыть этот vim, нажав сначала ‘ESC’, а затем ‘:wq’ для сохранения и выхода.
Одна из других полезных команд git commit:
git commit --amend -m "commit message'
Эта команда объединит этот коммит с последним коммитом, и у него появится новое сообщение о коммите.
5. git log
Команда git log отображает все коммиты в истории хранилища.
Существует много способов просмотреть историю коммитов:
-
Самый простой: Показывает все коммиты от конца до начала, со всей информацией, связанной с коммитами.
git log
Он показывает коммиты, основанные на HEAD.
-
Чтобы увидеть некоторое количество последних коммитов:
git log -5
Посмотреть последние 5 коммитов.
-
Чтобы увидеть коммит от одного коммита к другому коммиту: Мы используем хэш-значение этих коммитов.
git log af156ff..32509d0
-
Чтобы посмотреть статистику коммитов:
git log --stat
Эта команда предоставляет основную информацию вместе с суммарным количеством изменений, сделанных между каждым коммитом.
-
Одна из самых удобных команд git log:
git log --all --oneline --graph --decorate
⇒ all: для просмотра всех коммитов
⇒ oneline: чтобы сохранить все данные о коммитах в одной строке.
⇒ graph: хранить коммиты в графическом виде, очень полезно при работе с ветвями.
⇒ украсить: сделать визуально лучше.
6. git show
Команда git show поможет увидеть детали конкретного коммита.
git show 1c16945
7. git diff
Команда git diff позволяет увидеть разницу между различными коммитами.
git diff 1c16945..9dcff6
Чтобы увидеть разницу между коммитами с хэш-значением 1c16945 и 9dcff6.
Мы также можем использовать ее напрямую.
git diff
Это отобразит разницу в файлах рабочей области и каталога.
Мы можем использовать — — staged с git diff
git diff --staged
Это отобразит разницу в файлах рабочей области и области постановки.
8. git stash
git stash временно откладывает (или хранит) изменения, внесенные вами в рабочую копию, чтобы вы могли работать над чем-то другим, а затем вернуться и снова применить их позже.
Хранить можно только те файлы, которые находятся в области хранения.
git stash
После использования git stash, если мы воспользуемся командой git status, мы не увидим ни одного файла в области хранения.
При использовании git stash мы также можем передать сообщение, чтобы в случае необходимости мы могли вспомнить, что мы делали с сохраненными файлами.
git stash save "changed title"
Чтобы просмотреть все сохраненные изменения:
git stash list
Чтобы просмотреть какую-то конкретную тайник, допустим, с индексом 1
git stash show -p stash@{1}
Для получения изменений в тайниках:
- Чтобы получить последнее изменение в заначке.
git stash pop
- Чтобы получить изменения в тайнике с определенным индексом
git stash pop stash@{1}
Удаление изменений из тайника:
- Удалить все
git stash clear
- Чтобы удалить некоторые определенные изменения
git stash drop stash@{0}
9. git branch
Команда git branch используется для работы с ветками в git.
Создание новой ветки:
-
Из ветки, на которую в данный момент указывает HEAD:
git branch newBranch
-
Из ветки, на которую HEAD в данный момент не указывает:
git branch newBranch fromBranch
-
Создание новой ветки и переключение на нее:
git checkout -b newBranch fromBranch
Переключение на другую ветку:
git checkout toSwitchBranchName
Сравнение различных ветвей:
git diff master..new_feature
Переименование ветвей:
Чтобы изменить название ветви, на которую в данный момент указывает HEAD:
git branch -m newBranchName
Чтобы изменить название ветви независимо от HEAD:
git branch -m oldName newName
Удаление ветвей
git branch -d branch_to_delete
-
Если мы сейчас находимся на ветке, которую пытаемся удалить, мы получим ошибку.
Поэтому необходимо убедиться, что мы не находимся на ветке, которую хотим удалить.
-
Если ветка, которую мы хотим удалить, не помечена и имеет коммиты, то эта команда не сработает. Git делает это, чтобы предотвратить случайное удаление ветвей.
Поэтому нам нужно использовать ‘-D’ вместо ‘-d’.
10. git merge
Команда git merge позволяет вам взять независимые линии разработки, созданные git branch, и объединить их в одну ветку.
git merge feature/Nav
Вышеприведенная команда объединит ветку feature/Nav с текущей проверенной веткой.
Некоторые примеры хорошей практики при слиянии ветвей вы можете посмотреть здесь.
В настоящее время здесь есть только команды, связанные с локальной работой с файлами. Я буду обновлять его в ближайшее время. 👊