Еще инфа про GIT - maxred01/QA2825 GitHub Wiki
Подробная инструкция по работе с Git для студентов
1. Установка Git
- Windows: Скачайте с официального сайта.
- macOS:
brew install git# через Homebrew или скачайте с сайта- Linux (Ubuntu/Debian):
sudo apt-get update && sudo apt-get install git
- Linux (Ubuntu/Debian):
2. Настройка Git (config)
Перед началом работы задайте имя и почту (они будут в коммитах):
git config --global user.name "Ваше Имя"
git config --global user.email "ваша@почта.com"
Проверить настройки:git config --list
3. Создание репозитория (init)
Если проект новый:
mkdir my-project
cd my-project
git init # создаст скрытую папку .git
4. Клонирование репозитория (clone)
Чтобы скопировать проект с GitHub:
git clone https://github.com/username/repo-name.git
cd repo-name
5. Работа с ветками
- Создать ветку:
git checkout -b feature/new-feature # создаст ветку и переключится на неё- Переключиться между ветками:
git checkout main # перейти в main git checkout feature/new-feature # вернуться обратно - Удалить ветку:
git branch -d feature/new-feature
- Переключиться между ветками:
6. Сохранение изменений (add, commit)
git add . # добавить все изменения
git add file1.txt # добавить конкретный файл
git commit -m "Описание изменений" # зафиксировать
7. Отправка изменений на сервер (push)
git push origin feature/new-feature # отправить ветку на GitHub
8. Обновление ветки
Если в main появились новые изменения, и вы хотите их добавить в свою ветку:
- Способ 1: Merge
git checkout maingit pull origin main # обновить maingit checkout feature/new-featuregit merge main # влить изменения main в свою ветку- Способ 2: Rebase (история будет линейной)
git checkout feature/new-featuregit fetch origin # получить данные о измененияхgit rebase origin/main # перебазировать ветку
- Способ 2: Rebase (история будет линейной)
9. Решение конфликтов
Если при слиянии возникли конфликты:
- Откройте файлы с конфликтами (Git пометит их).
- Удалите маркеры
<<<<<<<, =======, >>>>>>>и оставьте нужный код. - Сохраните файлы, затем:
git add . # добавить исправленные файлыgit rebase --continue # или git commit, если это merge
10. Работа с удалённым репозиторием (pull, fetch)
- Обновить локальную ветку:
git pull origin main # = git fetch + git merge- Просмотреть изменения с сервера:
git fetch origin # скачать изменения, но не применятьgit diff origin/main # сравнить с локальной веткой
- Просмотреть изменения с сервера:
Примеры ситуаций
Ситуация 1: Обновить ветку после изменений в main
- Вы работаете в ветке feature/login.
- Кто-то обновил main, и вам нужны эти изменения.
- Выполните:
git checkout maingit pull origin maingit checkout feature/logingit merge main # или git rebase main
Ситуация 2: Создать репозиторий с нуляmkdir my-app
cd my-app
git init
echo "# My Project" > README.md
git add README.md
git commit -m "Initial commit"
git remote add origin https://github.com/username/my-app.git
git push -u origin main
Ситуация 3: Отмена изменений
- Отменить незакоммиченные изменения:
git checkout -- file.txt # вернуть файл к последнему коммиту- Удалить последний коммит (если не отправлен на сервер):
git reset --soft HEAD~1 # оставить изменения в файлахgit reset --hard HEAD~1 # удалить всё
- Удалить последний коммит (если не отправлен на сервер):
Советы:
- Часто делайте
git pull, чтобы не отставать отmain. - Пишите понятные сообщения коммитов.
- Используйте
.gitignoreдля исключения ненужных файлов (например, node_modules/,.env). - Перед отправкой на сервер проверяйте код через
git diff.
Пример .gitignore
Создайте файл .gitignore в корне проекта и добавьте туда:# Игнорировать папки
node_modules/
.env
Игнорировать файлы
*.log
*.tmp