Создание репозитория на GitHub

Создание удалённого репозитория, подключение к локальному проекту и первый push

Зачем нужно

  • Хранить код в облаке (бэкап)
  • Совместная работа в команде
  • Портфолио разработчика
  • Open-source вклад

Где используется

  • Каждый новый проект начинается с создания репозитория
  • Публикация open-source проектов
  • Рабочие проекты команды

Предпосылки

Создание через веб-интерфейс

Шаги

  1. GitHub → кнопка "+"New repository
  2. Заполнить:
    • Repository name: my-project (строчные, дефисы)
    • Description: краткое описание
    • Public / Private: видимость
    • Initialize with README: добавить README.md
    • Add .gitignore: выбрать шаблон (Node, Python и т.д.)
    • Choose a license: MIT, Apache 2.0 и т.д.
  3. 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
  • Забыть .gitignorenode_modules (сотни МБ) попадёт в репозиторий
  • Не добавить .env в .gitignore — утечка секретов (API-ключи, пароли)
  • Push в чужой репозиторий — нужно сделать fork, а не clone
  • Не использовать -u при первом push — придётся каждый раз указывать ветку

Практика

  1. Создайте новый репозиторий на GitHub с README
  2. Клонируйте его, добавьте файлы, сделайте push
  3. Создайте локальный проект и свяжите с пустым GitHub-репозиторием
  4. Настройте .gitignore для Node.js-проекта
  5. Попробуйте gh repo create через GitHub CLI

Связанные темы

Ресурсы