Git — это наиболее широко используемая система контроля версий в мире, и это то, чем должен овладеть каждый специалист по разработке программного обеспечения.
В этой статье мы рассмотрим пять трюков с git, которые облегчат вам создание программного обеспечения.
Вот трюки, которые мы рассмотрим в этой статье:
- Быстрая настройка учетных данных Git SSH с помощью GitHub CLI
- Создайте новую ветку и отслеживайте ее с помощью remote
- Быстрое тестирование изменений в разных ветках с помощью stash
- Разделить одну большую ветку на несколько
- Удаление ветки из remote
- Быстрая настройка учетных данных Git SSH с помощью GitHub CLI
- Создайте новую ветку и отслеживайте ее с помощью remote
- Быстрое тестирование изменений в разных ветках с помощью stash
- Разделение одной большой ветки на несколько
- Удаление ветви из удаленного файла
- Бонус: Используйте псевдонимы git, чтобы облегчить себе жизнь
- Что еще можно изучить
Быстрая настройка учетных данных Git SSH с помощью GitHub CLI
Первое, что вам нужно сделать, прежде чем пробовать эти трюки, это настроить git
и его учетные данные.
Если вы уже настраивали git с помощью учетных данных ssh, то вы наверняка знаете, насколько громоздким может быть весь процесс, для тех, кто не знает, вот очень краткий обзор:
- Настройте ваш .gitconfig с именем пользователя и почтой
- Сгенерируйте новый ssh-ключ
- Добавить ssh-ключ в GitHub
Но подождите, есть более разумный (и надежный) способ настройки git с помощью учетных данных GitHub.
Все, что вам нужно, — это установленный в вашей системе GitHub CLI.
После этого все просто:
gh auth login
Это сделает все вышеупомянутые шаги и даже больше.
Создайте новую ветку и отслеживайте ее с помощью remote
Теперь, когда мы получили учетные данные git и клонировали репозиторий, пришло время создать новую ветку и начать работу над новой функцией.
Но подождите, как все это сделать?
- Во-первых, вы создаете ветку в локальном
git checkout -b <branch> # old way
git switch -c <branch> # new way
- Затем отслеживаем эту ветку с помощью удаленного
git push -u origin <branch>
Это переместит ветку в remote, и она будет доступна для всех желающих.
Если вы используете git 2.37 или выше, вы можете просто использовать git push
, чтобы сделать то же самое, просто добавьте этот конфиг.
git config --global --add --bool push.autoSetupRemote true
Быстрое тестирование изменений в разных ветках с помощью stash
Допустим, вы хотите опробовать новый конфиг, который вы добавили в свою ветку и успешно протестировали, но перед фиксацией вы хотите убедиться, что это изменение конфига не сломает ветку main
.
Как это сделать?
- Вот один из способов быстро сделать это с помощью stash:
# Stash your current changes
git stash push
# Or if you have multiple stashes
git stash push -m "configs" # Saves stash with an identifier
- Теперь вы можете переключиться на
main
и протестировать свои изменения
git switch main # Switch to the main branch
git stash apply # Applies most recent stashed changes without removal
# Or if you have multiple things in the stash
git stash list # Get all stashes with index
git stash apply stash@{<index>} # Apply stash at <index>
- После завершения изменений переключитесь на предыдущую ветку и продолжите работу
git switch - # Switch to the previous branch
git stash pop # Applies changes and removes the most recent stash
Теперь вы можете фиксировать свои изменения и отправлять их на удаленное использование, не беспокоясь о ветке main
.
Разделение одной большой ветки на несколько
Во время работы над функцией вы увлеклись и случайно добавили коммиты для следующей функции в ту же ветку, и теперь вы хотите разделить ветку на несколько.
Вот как это можно сделать:
- Определите хэш коммита, с которого вы хотите разделить новую ветку, используя
git log
, вы также можете использовать следующую команду для получения более красивых логов.
git log --oneline --decorate --graph
- Создайте новую ветвь, но пока не отписывайтесь,
new-branch
должен указывать наHEAD
вашей текущей ветви.
git branch <new-branch>
- Жесткий сброс текущей ветви на фиксацию разделения
git reset --hard <commit-hash>
- Принудительный push обновлённой головки текущей ветки на удалённую
git push --force-with-lease
- Переключитесь на
новый филиал
и добавьте его к удаленному
git switch <new-branch>
git push -u origin <new-branch>
Вы закончили!
Чтобы создать несколько ответвлений, используйте git rebase --onto
для соединения ветвей.
Удаление ветви из удаленного файла
Что если одна из веток больше не нужна или если вы допустили опечатку при создании ветки.
Вы определенно захотите удалить ветку с удаленного сервера, верно?
Вот как вы можете это сделать:
- Удалить ветку из локальной
git branch -d <branch>
git branch -D <branch> #Force delete
- Удалить ветку с удаленного
git push origin :<branch>
Это удалит ветку из локальной и удаленной.
Бонус: Используйте псевдонимы git, чтобы облегчить себе жизнь
Хорошо! Вы добрались до конца этой статьи и уже познакомились с большим количеством команд git.
Но как все это запомнить? Легко!
Вы можете использовать псевдонимы git, чтобы облегчить себе жизнь.
Вы можете добавить эти псевдонимы в свой файл .gitconfig
.
[alias]
a = add
c = commit
l = pull
p = push
co = checkout
br = branch
st = stash
sw = switch
Или вы можете использовать следующие команды для добавления этих псевдонимов в ваш текущий файл конфигурации оболочки (~/.bashrc
, ~/.zshrc
и т.д.):
alias g='git'
alias ga='git add'
alias gc='git commit -m'
alias gl='git pull'
alias gp='git push'
alias gco='git checkout'
alias gbr='git branch'
alias gst='git stash'
alias gsw='git switch'
Добавьте столько псевдонимов, сколько захотите, — экономия нескольких нажатий клавиш значительно облегчит вам жизнь в долгосрочной перспективе.
Что еще можно изучить
Это только вершина айсберга, когда речь заходит о git
, есть еще много удивительных вещей, которые вы можете сделать с его помощью.
Идите вперед и исследуйте!
В будущем мы расскажем о других командах и трюках.