Рабочий процесс 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Другие расширения