Поиск по сайту:

Расширенное руководство по Git


На этой странице

  1. Предварительные условия
  2. Что будем делать?
  3. Создать ветку
  4. Объединить ветку с основной веткой
  5. Создать тег
  6. Переименовать ветку
  7. Отменить фиксацию
  8. Заключение

Эта статья является продолжением моей предыдущей статьи Начало работы с GIT в Linux. Если вы новичок в Git, я бы порекомендовал вам сначала прочитать мою предыдущую статью, а затем продолжить эту.

В этой статье мы расскажем о создании ветки, теге, переименовании ветки и отмене коммитов в Git.

  1. Ветвь: Ветвь помогает создать новую линию разработки, чтобы избежать путаницы в основной ветке.
  2. Тег. Тег в Git — это ссылка на историю Git.
  3. Переименовать ветку. Переименование ветки означает изменение названия существующей ветки и добавление существующего кода в ветку с новым именем.
  4. Отменить фиксацию. Отмена помогает отменить изменения в локальном и удаленном репозитории.

Предпосылки

  1. Основное понимание Git (Нажмите здесь, чтобы изучить основы Git.)

Что мы будем делать?

  1. Создайте ветку.
  2. Объединить ветку с основной веткой.
  3. Создайте тег.
  4. Переименовать ветку.
  5. Отменить фиксацию.

Создать ветку

Перейдите в свой локальный репозиторий и просто проверьте свою ветку и ее статус, используя следующие команды, прежде чем создавать новую ветку. Здесь test-repo — это имя моего репозитория.

pwd
git status
git log
git branch

Создайте новую ветку в существующем репозитории и извлеките ее.

git branch
git branch my-feature-branch
git branch
git checkout my-feature-branch
git branch

Давайте создадим новый файл и отправим его в созданную нами ветку.

ll
touch new-file-in-my-feature-branch
git status
git add new-file-in-my-feature-branch
git commit -m "created a new file in my-feature-branch"
git push
git push --set-upstream origin my-feature-branch

Слияние ветки с основной веткой

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

ll
git branch
git checkout main
ll
git merge my-feature-branch
ll

Создать тег

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

git tag
ll
touch new-file-for-tag
git status
git add new-file-for-tag
git tag -a mytag.v1 -m
git tag -a mytag.v1 -m "create a tag"
git tag
git log
git status
git commit -m "create a tag mytag.v1"
git push

Мы можем проверить, какие все теги у нас есть, и зафиксировать эти теги. То, как мы пушим нашу ветку, мы можем пушить и теги.

git tag
git show mytag.v1
git push origin mytag.v1

То, как мы оформляем заказ на ветку, мы можем оформить и на определенный тег.

git branch
git tag
git checkout mytag.v1
git branch

Давайте перейдем к основной ветке, прежде чем двигаться дальше.

git branch
git checkout main
git branch

Переименовать ветку

Иногда вы можете почувствовать, что вам нужно переименовать свою ветку. Вы можете сделать это очень легко, используя следующие команды.

git branch
git branch wrong-brach
git checkout wrong-brach
touch file-in-wrong-branch
git add file-in-wrong-branch
git commit -m "Created a branch wrong-brach with a new file"
git push
git push --set-upstream origin wrong-brach
git branch
git branch --move wrong-brach correct-branch
git branch
push --set-upstream origin correct-branch

Вы даже можете удалить ветку из удаленного репо.

git branch
git branch -a
git push origin --delete  wrong-brach
git branch -a

Отменить фиксацию

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

git branch
git checkout main
git log
git reset --soft HEAD~1
git log

Вы можете видеть, что после отмены фиксации ваши локальные изменения по-прежнему доступны.

git status
git pull
git log
git status

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

git log
git reset --hard HEAD~1
git status
git log

В этом случае вы можете видеть, что после отмены вашей фиксации у вас нет локальных изменений.

git status
git pull
git log

В двух приведенных выше сценариях мы видели отмену локальных коммитов. Иногда вам может потребоваться отменить коммиты из удаленного репозитория. Для этого вам нужно отправить свои изменения в ветку с \+\ в качестве суффикса к названию ветки после того, как вы отмените свои изменения локально.

git branch
git log
git reset --hard HEAD~1
git push +main
git push origin  +main

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

Заключение

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