Рабочий процесс Git

В этой главе мы познакомимся с рабочим процессом Git.

На следующей схеме показан рабочий процесс Git:

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

1. Рабочий каталог —— ваш стол

это выфактически изменённые файлыместо, где вы пишете код, делаете удаления и изменения.

  • действие: Здесь вы пишете новые функции или исправляете ошибки.

2. Промежуточная область —— ваша корзина для исходящей почты

Когда вы чувствуете, что ваша работа в основном завершена, вы складываете её в корзину, готовую к упаковке.

  • Ключевые команды:git add
  • Значение: Сообщите Git, что вы подтверждаете, что эти изменения должны быть зафиксированы, и попросите его пока что запомнить их.

3. Локальный репозиторий —— ваш личный сейф

Вы упаковываете вещи из корзины, прикрепляете метку (сообщение коммита) и запираете это в своём собственном сейфе.

  • Ключевые команды:git commit
  • Значение: Изменения официально становятся частью истории проекта. Даже если позже вы всё испортите, вы всегда сможете восстановить их отсюда.

4. Удалённый репозиторий —— почтовый ящик вашего учителя (например, GitHub/GitLab)

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

  • Ключевые команды:git push
  • Значение: Сделайте резервную копию кода и делитесь прогрессом с командой.

Объяснение ключевого понятия

  • git stash (область stash): Вы на полпути в своей работе, и вдруг вам нужно заняться другой срочной задачей, но вы не хотите делать коммит незавершённой работы. В этот момент вы можете сначала использоватьstashчтобы временно отложить код в ящик, затем достать его и продолжить работу над ним, когда закончите (pop)。
  • git pull (pull): Проверьте, не отправили ли другие новую работу на стороне преподавателя (в удалённом репозитории), и сразу синхронизируйте её со своим рабочим местом.
  • git fetch & merge: Сначала проверьте, какие обновления есть в удалённом репозитории (fetch), убедившись, что проблем нет, выполните слияние (merge) в свой собственный код.

Краткое резюме:
Измените код →add(положить в корзину) →commit(сложить в коробку) →push(отправить в далёкое место).


Описание команды

1. Клонируйте репозиторий

Если вы хотите участвовать в существующем проекте, сначала нужно клонировать удалённый репозиторий на свою локальную машину:

git clone https://github.com/username/repo.git
cd repo

2. Создайте новую ветку

Чтобы не вести разработку напрямую в ветке main или master, обычно создают новую ветку:

git checkout -b new-feature

3. Рабочий каталог

Редактируйте код, добавляйте новые файлы или удаляйте ненужные файлы в рабочем каталоге.

4. Индексирование файлов

Добавьте изменённые файлы в область индексации, чтобы можно было перейти к следующей операции коммита:

git add filename
# 或者添加所有修改的文件
git add .

5. Фиксация изменений

Зафиксируйте проиндексированные изменения в локальном репозитории и добавьте сообщение коммита:

git commit -m "Add new feature"

6. Получение последних изменений

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

git pull origin main
# 或者如果在新的分支上工作
git pull origin new-feature

7. Отправка изменений

Отправьте локальные коммиты в удалённый репозиторий:

git push origin new-feature

8. Создание Pull Request (PR)

Создайте Pull Request на GitHub или других платформах хостинга, чтобы пригласить участников команды проверить код. После слияния PR ваши изменения попадут в основную ветку.

9. Слияние изменений

После проверки и слияния PR вы можете слить основную ветку удалённого репозитория в локальную ветку:

git checkout main
git pull origin main
git merge new-feature

10. Удаление ветки

Если функциональная ветка больше не нужна, её можно удалить:

git branch -d new-feature

Или удалить ветку из удалённого репозитория:

git push origin --delete new-feature
Другие расширения