Создание репозитория на GitHub
Создание удалённого репозитория, подключение к локальному проекту и первый push
Зачем нужно
- Хранить код в облаке (бэкап)
- Совместная работа в команде
- Портфолио разработчика
- Open-source вклад
Где используется
- Каждый новый проект начинается с создания репозитория
- Публикация open-source проектов
- Рабочие проекты команды
Предпосылки
- Основные команды
- SSH ключи
- Аккаунт на GitHub
Создание через веб-интерфейс
Шаги
- GitHub → кнопка "+" → New repository
- Заполнить:
- Repository name:
my-project(строчные, дефисы) - Description: краткое описание
- Public / Private: видимость
- Initialize with README: добавить README.md
- Add .gitignore: выбрать шаблон (Node, Python и т.д.)
- Choose a license: MIT, Apache 2.0 и т.д.
- Repository name:
- Create repository
Подключение локального проекта
Вариант 1: Сначала локальный, потом remote
# 1. Создать локальный репозиторий
mkdir my-project && cd my-project
git init
echo "# My Project" > README.md
echo "node_modules/" > .gitignore
git add README.md .gitignore
git commit -m "Инициализировать проект"
# 2. Создать пустой репозиторий на GitHub (БЕЗ README, .gitignore, license)
# 3. Подключить remote
git remote add origin git@github.com:username/my-project.git
# 4. Отправить код
git push -u origin main
# -u (--set-upstream) — связывает локальную ветку с remote
Вариант 2: Сначала GitHub, потом clone
# 1. Создать репозиторий на GitHub (С README)
# 2. Клонировать
git clone git@github.com:username/my-project.git
cd my-project
# 3. Работать
Работа с remote
# Список remote-ов
git remote -v
# origin git@github.com:username/my-project.git (fetch)
# origin git@github.com:username/my-project.git (push)
# Добавить remote
git remote add origin git@github.com:username/repo.git
# Изменить URL remote
git remote set-url origin git@github.com:username/new-repo.git
# Удалить remote
git remote remove origin
# Переименовать remote
git remote rename origin upstream
Push и Pull
# Отправить изменения
git push origin main
# Первый push с привязкой ветки
git push -u origin main
# После этого достаточно просто:
git push
# Получить изменения
git pull origin main
# или (после -u)
git pull
# Получить без merge (только загрузить)
git fetch origin
git log origin/main # посмотреть что нового
git merge origin/main # применить
README.md
Каждый репозиторий должен иметь README:
# Название проекта
Краткое описание проекта в 1-2 предложениях.
## Установка
```bash
npm install
Использование
npm start
Технологии
- JavaScript
- React
- Node.js
Лицензия
MIT
## .gitignore
```gitignore
# Зависимости
node_modules/
# Среда разработки
.env
.env.local
# Сборка
dist/
build/
# IDE
.idea/
.vscode/
*.swp
# ОС
.DS_Store
Thumbs.db
# Логи
*.log
Лицензии
| Лицензия | Суть |
|---|---|
| MIT | Делайте что хотите, просто укажите автора |
| Apache 2.0 | Как MIT + защита патентов |
| GPL v3 | Производные работы тоже должны быть GPL |
| Unlicense | Полностью в общественном достоянии |
Для большинства проектов подходит MIT.
Создание через CLI (GitHub CLI)
# Установить gh
# https://cli.github.com/
# Авторизация
gh auth login
# Создать репозиторий
gh repo create my-project --public --source=. --remote=origin --push
# Создать приватный
gh repo create my-project --private --clone
# Из существующей папки
cd my-project
gh repo create --source=. --public
Частые ошибки
- Создать с README и инициализировать локально — получится конфликт при push (два разных корня истории). Решение:
git pull --rebase origin main - Забыть
.gitignore—node_modules(сотни МБ) попадёт в репозиторий - Не добавить
.envв .gitignore — утечка секретов (API-ключи, пароли) - Push в чужой репозиторий — нужно сделать fork, а не clone
- Не использовать
-uпри первом push — придётся каждый раз указывать ветку
Практика
- Создайте новый репозиторий на GitHub с README
- Клонируйте его, добавьте файлы, сделайте push
- Создайте локальный проект и свяжите с пустым GitHub-репозиторием
- Настройте
.gitignoreдля Node.js-проекта - Попробуйте
gh repo createчерез GitHub CLI
Связанные темы
Ресурсы
- GitHub Docs: Create a repo
- Choose a License — помощь в выборе лицензии
- gitignore.io — генератор .gitignore
- GitHub CLI — официальный CLI