Полезные команды git

git init

Инициализирует новый Git-репозиторий в текущей директории. Эта команда создаёт новую папку .git, содержащую все необходимые файлы репозитория — это позволяет начать отслеживание версий для проекта.

git push origin master

Отправляет изменения из локальной ветки master в удалённый репозиторий, названный origin. Это обновляет удалённый репозиторий новыми коммитами, сделанными в локальной ветке master.

git pull origin master

Извлекает изменения из ветки master удалённого репозитория origin и сразу же сливает (merge) их с текущей локальной веткой. Эта команда используется для обновления локальной ветки последними изменениями из удалённого репозитория.

git checkout -b new_branch_name

Создает новую ветку new_branch_name и сразуже на нее переключаемся.

git fetch

Данные из удаленного репозитория будут скопированы в локальный репозиторий без изменения текущего состояния локальной ветки.

Пояснение. Когда вы выполняете команду git fetch, Git связывается с удалённым репозиторием, связанным с вашим локальным репозиторием. Затем он загружает все данные из этого удалённого репозитория, которых у вас ещё нет. Обычно эти данные включают в себя все изменения, сделанные в ветках. Эта команда скачивает новую историю изменений из удалённого репозитория и интегрирует эти изменения в ваш локальный репозиторий, но она не объединяет их и не изменяет ваши рабочие файлы. Это означает, что текущее состояние вашей локальной ветки не изменится автоматически. Вместо этого git fetch позволяет вам просмотреть эти изменения перед тем, как интегрировать их в ваши локальные ветки, что можно сделать с помощью таких команд, как git merge или git rebase

git revert

Команда, создающая новый коммит, применяющий изменения, противоположные коммиту, указанному в качестве аргумента. Эта команда используется для “отката” изменений, сохраняя при этом историю изменений. В отличие от git reset, которая удаляет историю коммитов, git revert сохраняет историю и предоставляет безопасный способ отмены изменений

git checkout

Команда, используемая для переключения между ветками или перемещения указателя HEAD на другой существующий коммит

git log

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

git checkout [коммит]
git reset --soft [коммит]

Команды, которые могут переместить текущий указатель HEAD на указанный коммит без изменения файлов в рабочем каталоге
Обе команды переместят HEAD на указанный коммит. Однако git reset –soft также переместит указатель текущей ветки на указанный коммит, в то время как git checkout приведет к состоянию “отсоединенного HEAD” (то есть вы будете вне ветки).

Для чего это надо? Перемещение указателя HEAD без изменения файлов в рабочем каталоге может быть полезным в нескольких ситуациях:

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

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

Временное отмена изменений. Вы можете использовать git reset –soft для временной отмены коммита, при этом изменения, которые были в этом коммите, останутся в индексе, позволяя вам модифицировать их перед тем, как сделать новый коммит.

Чистка рабочего каталога. Если ваш рабочий каталог “загрязнен” изменениями, которые вы не хотите коммитить, вы можете переместить HEAD и сбросить индекс, не затрагивая эти изменения. Затем вы можете продолжить работу с чистым индексом.

Стратегическое разделение работы. Если вы работаете над большой фичей и хотите разделить ее на несколько мелких коммитов, вы можете использовать git reset –soft для стратегического разделения изменений на более мелкие части без потери прогресса в работе.

git show [COMMIT_HASH]

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

git commit -am

Git сохранит изменения только для отслеживаемых файлов, то есть для файлов, которые уже были добавлены в Git ранее. Новые (неотслеживаемые) файлы не будут включены в коммит, если вы не добавите их через git add перед коммитом.

3 основных состояния файлов в git
Staged (индексированные): Это изменения, которые вы добавили в область подготовленных файлов (staging area) с помощью команды git add. Эти изменения будут включены в ваш следующий коммит.

Unstaged (неиндексированные): Это изменения, которые вы сделали в файлах, уже отслеживаемых Git, но еще не добавленные в область подготовленных файлов. Если вы сделаете коммит в этом состоянии, то эти изменения не попадут в коммит.

Untracked (неотслеживаемые): Это файлы, которые находятся в вашем рабочем каталоге, но Git не отслеживает их изменения, потому что вы еще не выполнили для них git add. Эти файлы не будут включены в коммит, пока вы их не начнете отслеживать и не добавите в область подготовленных файлов.

git diff

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

git rm file_name

Git прекращает отслеживание файла и удаляет его из файловой системы, если он не указан в файле .gitignore.

git commit --amend

Внести изменения в последний коммит. (когда чтото забыли). Дает вам возможность отредактировать сообщение коммита. Это полезно, когда вы хотите исправить или улучшить сообщение или добавить больше изменений в последний коммит.

git commit --amend --no-edit

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

git cherry-pick

Используется для копирования определенного коммита из одной ветки в другую, применяя изменения, внесенные в этот коммит.
Эта команда полезна, когда вы хотите включить изменения из коммита на другой ветке в вашу текущую рабочую ветку, не сливая полностью всю ветку. Она берет патч, который был представлен в одном коммите, и применяет его в виде нового коммита на вашей текущей ветке.

git rebase -i

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

Подробнее о git rebase (перебазирование коммитов и веток) можно почитать в блоге selectel

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *