В этой статье я делюсь командами 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 в этом разделе.