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

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

Мой список наиболее часто используемых команд git с примерами

  • статус git
  • git добавить
  • git совершить
  • git push
  • git тянуть
  • git касса
  • git слияние

Git-статус

Здесь у меня есть 1 файл, который не был добавлен в git, и 1 файл, содержимое которого было недавно изменено.

Git Добавить

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

Есть 2 способа добавить все файлы в промежуточную область:

а) Git добавить — все

С тех пор, как я начал работать над monorepo, я использую git add — all для добавления всех файлов, в которые я внес изменения, независимо от каталога проекта.

б) Git добавить .

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

Еще один способ проверить, были ли файлы зафиксированы, — ввести git status в терминале. Теперь файлы, выделенные зеленым цветом, показывают, что они были подготовлены, но не зафиксированы.

git add dir/file1.js dir/file2.js

Git-коммит

Эта команда сохраняет ваши последние изменения в истории контроля версий проекта локально. Эту команду можно использовать в коротком формате.

git commit -m ‹сообщение›

Эта опция позволяет зафиксировать вашу работу с помощью короткого/однострочного сообщения.

git commit -m 'update article with pictures'

зафиксировать git

Это то же самое, что и команда выше, но она открывает редактор vim, где вы можете писать более длинные, лучше структурированные сообщения фиксации, поддерживающие несколько строк.

Если вы хотите использовать команду git commit, узнайте, как использовать a для написания сообщения, сохранения и выхода из редактора vim. Или вы можете изменить свой любимый редактор git на Nano.

Git Push

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

git push

Для вновь созданной локальной ветки эта команда используется для настройки удаленной ветки с тем же именем, что и у локальной ветки.

git push -u origin <branch_name>

или по умолчанию git

git push --set-upstream <remote> <branch_name>

Git Pull

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

git pull

Git оформить заказ

Я использую это для переключения веток.

git checkout <branch name>

Git проверить -b

Это создает новую ветку из существующей ветки и автоматически переключается на новую ветку.

git checkout -b <branch name>

Git слияние

Я использую эту команду для обновления коммитов, присутствующих в родительской ветке (dev или main), с моей рабочей веткой. Например, коллега работал над функциональной веткой под названием add-navigation, которая была объединена с веткой main branch.

Если я хочу, чтобы мой feature branch имел те же обновления, что и main branch, я использую git merge* для переноса коммитов, присутствующих в main branch, в ветку функций, над которой я работаю.

Как объединить функциональную ветку с основной веткой

убедитесь, что вы перешли на main branch и запустили команду git merge*.

git checkout main
git merge <branch name>

Как объединить основную ветку с функциональной веткой

git merge* также можно использовать для объединения веток в противоположном направлении. Когда я заканчиваю работу над функциональной веткой, я использую git merge, чтобы добавить работу, проделанную над моим feature branch, в main branch.

Убедитесь, что local main соответствует версии remote main branch.

git pull

оформить заказ на feature branch и запустить команду git merge.

git checkout <feature-branch>
git merge <branch name>

Список часто используемых команд Git с примерами

Эти команды я использую часто, но не так часто, как наиболее часто используемые команды.

  • git лог — однострочный
  • ветка git -d
  • git сброс
  • git перебазировать

git лог — однострочный

Это отображает историю коммитов git в виде короткого сообщения, состоящего из одной строки, что упрощает сканирование предыдущих сообщений коммитов.

git log --oneline

ветка git -d

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

git branch -d

git сбросить голову

Я использую эту команду, когда хочу отменить фиксацию определенной фиксации в файле. Вы можете использовать git — oneline*, чтобы получить короткую версию хэша коммита, на который вы хотите сбросить код.

git reset head <commit hash>

Примечательные упоминания от друзей-разработчиков их наиболее часто используемых команд git

Вот некоторые из команд, которые я нашел у друзей-разработчиков, которые отличаются от моих наиболее часто используемых команд.

  • git rm -кэшированный флаг
  • git тайник
  • git cherry pick ‹фиксация хэша ›
  • git перебазировать

git rm — кешированный флаг

git rm — кэшированная* команда удаления файлов из вашего локального репозитория git. Флаг — cached* удаляет файл из вашего репозитория git, он становится неотслеживаемым файлом в папке вашего проекта. Обратите внимание, что вы должны зафиксировать изменения.

git rm <file Relative path> --cached

git тайник

Допустим, вы работаете над feature branch и вам нужно поработать над чем-то еще, но пока не хотите фиксировать изменения.

Вы используете команду git stash*, чтобы временно сохранить изменения без необходимости их фиксации. Это позволяет вам переключаться между ветками и возвращаться к вашему feature branch, легко извлекать спрятанные изменения и продолжать работу над ними.

git stash --include-untracked or git stash -u

git cherry pick ‹фиксация хэша ›

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

чтобы добавить все коммиты из другой ветки в вашу рабочую ветку только для того, чтобы получить одну конкретную фиксацию из этой ветки, вы используете git cherry pick‹commit hash›*, чтобы объединить эту конкретную фиксацию в вашу ветку.

git cherrypick 0c2e231

git перебазировать

git rebase* решает ту же проблему, что и git merge*, но по-другому. Вместо того, чтобы использовать фиксацию слияния, перебазирование перезаписывает историю проекта, создавая совершенно новые фиксации для каждой фиксации в исходной ветке.

Подробнее о разнице между слиянием и ребазингом.

Заключение

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

Поделитесь со мной списком наиболее часто используемых команд git в этом разделе.