Найти в Дзене

Немного Git комманд

Git играет важную роль в повседневной жизни инженеров-программистов, особенно работающих в команде. Git помогает разработчикам сотрудничать в проектах. Существует много доступных команд git, некоторые из них разработчики используют каждый день, другие не так широко используются, но стоит знать о их существовании. Add и commit одной командой Одной из наиболее часто используемых связок команд в git являются git add . за которой следует git commit. git add .
git commit -m "commit message" Чаще всего хочется добавить все измененные файлы. Вместо написания обеих команд мы можем объединить их в одну, используя -am флаг, который выполняет обе команды git add . и git commit. git commit -am "commit message" Копирование изменений из другой ветки Есть некоторые сценарии, когда нам нужно добавить изменения в несколько веток, например, если есть две версии, и мы поддерживаем их обе, мы должны зафиксировать изменения в обеих ветках. Давайте начнём две ветки, branchA и branchB. Вместо комита в обеих
Оглавление

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

Add и commit одной командой

Одной из наиболее часто используемых связок команд в git являются git add . за которой следует git commit.

git add .
git commit -m "commit message"

Чаще всего хочется добавить все измененные файлы. Вместо написания обеих команд мы можем объединить их в одну, используя -am флаг, который выполняет обе команды git add . и git commit.

git commit -am "commit message"

Копирование изменений из другой ветки

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

Давайте начнём две ветки, branchA и branchB. Вместо комита в обеих ветках вручную мы можем использовать команду git rebase.

git checkout branchA
git rebase branchB

Что произойдет? BranchA будет выглядеть так, как будто он был разветвлен от BranchB.

Добавьте изменения в свой последний коммит

Мы все были в ситуации, когда мы забыли одно маленькое изменение, для которого мы должны сделать новый коммит. Когда это изменение не так велико, мы можем добавить его в наш последний коммит, используя — amend.

git add .
git commit --amend --no-edit

Использование — no-edit флага позволяет нам применять изменения к нашему последнему коммиту без изменения сообщения о коммите.

Удалить файл из коммита

Если мы хотим удалить определенный файл, который был закомитен в ветке, мы можем использовать команду git reset.

git reset --soft HEAD^

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

git reset HEAD <filename>

Найти коммит с ошибкой

Вы были в ситуации, когда была обнаружена ошибка, и вам пришлось искать, когда и что именно было изменено, чтобы эта ошибка появилась? Если бы вы знали эту команду тогда, этот процесс был бы быстрее и проще. Используя git bisect, мы сможем искать коммит, который создает ошибку, сначала сообщив ему “плохой” коммит, в котором есть ошибка, и “хороший” коммит, где его не было.

git bisect start
git bisect bad
git bisect good v.11.0.1-rc2

Когда мы закончим, мы должны использовать git bisect reset очистить состояние и вернуться к первоначальному HEAD.

git bisect reset

Смотрите свою историю как график

Если мы хотим видеть нашу историю git как график, это можно легко сделать с помощью одной команды.

git log --all --decorate --oneline --graph

Вы, вероятно, не будете использовать git log каждый день, но есть простая аббревиатура, которую вы можете использовать для запоминания команды:

“A DOG” = git log — All — Decorate — Oneline — Graph

Получить разницу между ветками

Если мы хотим увидеть, в чем различия между двумя ветками, мы можем использовать команду git diff.

git diff master

Если мы не хотим видеть точные различия, а только имена файлов, мы можем добавить флаг — name-only.

Показать коммиты, в которых был изменен конкретный файл

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

git log --follow -- <filename>

Отменить все локальные изменения

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

Если вы хотите вернуть изменения в свою рабочую копию, используйте:

git restore .

Если вы хотите удалить все незапушеные коммиты в master:

git reset

Если вы хотите отменить изменение конкретного коммита:

git revert <commit>

Если вы хотите удалить неотслеживаемые файлы или каталоги:

git clean -f or git clean -fd

Подписывайтесь на мой канал и ставьте лайки!