2 min read

Git-команды, которые нужны каждый день

Git-команды, которые нужны каждый день

Git знают все, кто работает с кодом. Но за пределами базового add → commit → push многие начинают гуглить. Ничего плохого в этом нет — я сам периодически уточняю синтаксис для редких операций. Собрал команды, к которым возвращаюсь чаще всего.

Новый репозиторий с нуля

git init
git add .
git commit -m 'initial commit'
git remote add origin https://github.com/user_name/repo.git
git push -u origin master

Флаг -u при первом push связывает локальную ветку с удалённой — последующие git push без аргументов будут работать автоматически.

Базовые команды

git clone repository_url      # клонировать репозиторий
git status                     # текущее состояние рабочей директории
git add .                      # добавить все изменения в индекс
git commit -m 'описание'       # зафиксировать изменения
git commit -a -m 'описание'    # зафиксировать все изменённые файлы без git add
git push origin main           # push в удалённый репозиторий
git push                       # push повторно (если ветка уже связана)

Ветки

git branch -a                  # показать все ветки (локальные и удалённые)
git branch newbranch           # создать ветку
git checkout newbranch         # переключиться на ветку
git push origin newbranch      # отправить ветку на remote
git branch -d newbranch        # удалить ветку локально
git push origin --delete newbranch  # удалить ветку на remote

Откат последнего коммита

git reset HEAD~         # отменить коммит, изменения остаются
git reset --hard HEAD~  # отменить коммит, изменения удаляются

HEAD~ — это "один коммит до текущего". git reset перемещает указатель HEAD к указанному состоянию. Разница между вариантами: без --hard файлы останутся изменёнными в рабочей директории, с --hard — вернутся к состоянию предыдущего коммита.

Push в несколько репозиториев одновременно

Удобно, когда нужно держать зеркало на GitHub и Bitbucket:

git remote add "all" [email protected]:username/my-repo.git
git remote set-url --add --push "all" [email protected]:username/my-repo.git
git remote set-url --add --push "all" [email protected]:username/my-repo.git
git push all

Применить .gitignore к уже существующему репозиторию

Добавил .gitignore после того, как часть файлов уже попала в индекс — Git их всё равно отслеживает. Чтобы это исправить:

git rm -r --cached .
git add .
git commit -m 'Removed all files that are in the .gitignore'
git push origin master

git rm --cached убирает файлы из индекса, не трогая их на диске. После git add . Git переиндексирует всё заново — уже с учётом .gitignore.


Если нужна помощь с настройкой Git-процессов в команде или CI/CD-пайплайнов — пиши на [email protected] или заходи на 1it.pro.

Связаться с нами
Telegram
WhatsApp
Email