Поиск, скачивание, клонирование, команды Git, форки, релизы, Issues — всё в одном месте
GitHub — это облачный хостинг для хранения кода, построенный поверх системы контроля версий Git. Здесь разработчики хранят проекты, совместно работают над кодом, отслеживают ошибки и публикуют готовые программы.
Репозитории (репо) — папки с файлами проекта + вся история изменений
Каждое изменение фиксируется. Можно откатиться к любой точке в прошлом
Несколько человек могут работать над одним проектом одновременно
Releases — публикация готовых программ, бинарников и архивов
Git ≠ GitHub. Git — программа для контроля версий (работает локально на компьютере). GitHub — сайт, где хранятся Git-репозитории онлайн. Есть и альтернативы: GitLab, Bitbucket, Gitea.
Строка поиска находится вверху любой страницы GitHub. Нажми / чтобы быстро сфокусироваться на ней.
Можно добавлять прямо к запросу через пробел:
| Фильтр | Пример | Что делает |
|---|---|---|
language: | language:python | Только на Python |
stars: | stars:>1000 | Более 1000 звёзд |
license: | license:mit | Только MIT-лицензия |
topic: | topic:telegram | По теме / тегу |
pushed: | pushed:>2024-01-01 | Активные после даты |
in:name | ffmpeg in:name | Слово в названии репо |
in:readme | ffmpeg in:readme | Слово в README |
fork:false | fork:false | Исключить форки |
Пример сложного запроса:
ffmpeg language:python stars:>500 pushed:>2024-01-01 fork:false
На странице результатов переключайся между вкладками: Repositories (репозитории), Code (поиск по содержимому файлов), Issues (обсуждения проблем), Topics (тематические подборки).
На странице github.com/explore — тренды, тематические подборки, рекомендации. Вкладка Trending (github.com/trending) — самые популярные репозитории за день/неделю/месяц.
main / master — основная стабильная ветка.Смотри на дату последнего коммита. Если репозиторий не обновлялся несколько лет и много открытых Issues — проект может быть заброшен.
README рендерится автоматически при открытии репо. Обычно там секции:
Самый простой способ. Не требует никаких инструментов. Нет истории изменений.
Файл загрузится как repo-name-main.zip — просто разархивируй
ZIP-архив — снимок текущего состояния. Обновления придётся качать вручную заново. Для регулярно обновляемых инструментов лучше использовать git clone + git pull.
Создаёт полную локальную копию репозитория с историей. Потом легко обновить одной командой.
https://github.com/owner/repo.gitgit clone https://github.com/owner/repo.git
cd repo
Позже, чтобы скачать обновления:
git pull
Если автор публикует скомпилированные программы или пакеты — они будут в Releases. Для конечных пользователей это предпочтительный вариант.
windows-amd64.zip, linux-x86_64.tar.gz, macos-arm64.dmg и т.д.Нужен конкретный файл, а не весь репозиторий:
curl:curl -O https://raw.githubusercontent.com/owner/repo/main/script.py # или wget: wget https://raw.githubusercontent.com/owner/repo/main/script.py
URL Raw-файла всегда начинается на raw.githubusercontent.com — это CDN GitHub для прямого доступа к содержимому файлов.
Git — отдельная программа, которую нужно поставить один раз. GitHub Desktop — опциональный GUI-клиент.
Скачай с git-scm.com. В установщике можно оставить все настройки по умолчанию. Откроется Git Bash — терминал с Git.
Встроен через Xcode CLI: xcode-select --install. Или через Homebrew: brew install git
sudo apt update && sudo apt install git
GitHub Desktop (desktop.github.com) — визуальный клиент для Windows/macOS. Clone, pull, push через кнопки.
Проверь установку:
git --version # git version 2.47.0
Укажи имя и email — они будут видны в истории коммитов:
git config --global user.name "Иван Петров" git config --global user.email "ivan@example.com"
Для публичных репозиторий можно указать любое имя и email. Приватная активность на github.com требует аккаунта — регистрация бесплатна на github.com/signup.
# Клонировать репозиторий git clone https://github.com/owner/repo.git # Клонировать в конкретную папку git clone https://github.com/owner/repo.git my-folder # Быстрое клонирование без истории (только текущий срез) git clone --depth 1 https://github.com/owner/repo.git
# Обновить локальную копию до актуального состояния git pull # Посмотреть изменения без их применения git fetch # Обновить все ветки git fetch --all
# Краткая история коммитов git log --oneline # Последние 20 коммитов git log --oneline -20 # Граф веток git log --oneline --graph
# Список всех тегов (версий) git tag # Переключиться на конкретную версию git checkout v2.1.0 # Вернуться на основную ветку git checkout main
# Посмотреть ветки (локальные) git branch # Все ветки включая удалённые git branch -a # Создать новую ветку и перейти в неё git checkout -b feature/my-fix # Переключиться на main git checkout main # Слить ветку в main git merge feature/my-fix
# Что изменилось? git status # Добавить все изменения в индекс git add . # Зафиксировать с описанием git commit -m "fix: исправить парсер" # Отправить на GitHub git push
Если ты только скачиваешь чужой код, команды add, commit, push тебе не нужны. Достаточно clone и pull.
Releases — официальные стабильные версии программы. Автор упаковывает код, добавляет changelog и прикрепляет готовые файлы. Это главное место для скачивания готовых программ.
Не видишь Releases в правой колонке? Перейди напрямую: github.com/owner/repo/releases
Закладка + голос поддержки. Помогает найти репо в своём профиле (вкладка Starred). На проект не влияет.
Создаёт твою копию репозитория в твоём аккаунте. Для участия в разработке или самостоятельного развития.
Подписка на уведомления: новые Issues, PR, релизы. Три режима: Ignore / Participating / All Activity.
Запрос на принятие твоих изменений в основной репозиторий. Автор просмотрит и решит, принять ли.
Для простого скачивания и использования Fork не нужен. Fork нужен только если хочешь менять код и предлагать изменения автору.
git clone https://github.com/ТВО_ИМЯЮЗЕРА/repo.git
git checkout -b fix/my-bugfix
git add . git commit -m "fix: описание исправления" git push origin fix/my-bugfix
# Добавить оригинальный репо как upstream (один раз) git remote add upstream https://github.com/ORIGINAL/repo.git # Скачать новые изменения из оригинала git fetch upstream # Влить в свою главную ветку git merge upstream/main
Issues — система задач, встроенная в каждый репозиторий. Здесь сообщают об ошибках, просят новые функции, задают вопросы.
Сообщение об ошибке. Обычно требуют: версию ПО, ОС, шаги воспроизведения, ожидаемое vs фактическое поведение
Запрос новой возможности. Опиши задачу и почему она важна — не конкретное решение
Вопрос по использованию. Многие проекты перенаправляют вопросы в Discussions или Discord
Метки: bug, enhancement, good first issue, help wanted, wontfix
Перед созданием Issue — поищи, не открыт ли уже аналогичный. Дубликаты закрывают без рассмотрения. Используй Ctrl+F или строку поиска на вкладке Issues.
Даже если не планируешь ничего сообщать — Issues полезны:
good first issue — с чего начать, если хочешь поучаствовать в разработкеРегистрация бесплатна на github.com/signup. Большинство возможностей доступны без аккаунта — он нужен для: звёзд, форков, Issues, Pull Requests, собственных репозиториев.
gist.github.com# Сгенерировать ключ ssh-keygen -t ed25519 -C "ivan@example.com" # Скопировать публичный ключ в буфер cat ~/.ssh/id_ed25519.pub
Скопируй вывод → GitHub → Settings → SSH keys → New SSH key → вставь.
После этого используй SSH-ссылки при клонировании: git@github.com:owner/repo.git
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ПОЛУЧЕНИЕ КОД ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ git clone <url> # клонировать репо git clone --depth 1 <url> # клонировать без истории git pull # обновить из remote git fetch # скачать без слияния ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ИСТОРИЯ И НАВИГАЦИЯ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ git log --oneline # краткая история git log --oneline --graph # история с ветками git tag # список версий git checkout <tag/branch> # переключиться git diff # что изменилось ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ВЕТКИ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ git branch # список веток git branch -a # включая remote git checkout -b <name> # создать и перейти git merge <branch> # слить ветку git branch -d <name> # удалить ветку ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ СОХРАНЕНИЕ ИЗМЕНЕНИЙ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ git status # что изменилось git add . # добавить всё git add <file> # добавить конкретный git commit -m "описание" # зафиксировать git push # отправить на GitHub git push origin <branch> # конкретная ветка ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ОТКАТ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ git restore <file> # отменить изменение файла git restore . # отменить все изменения git reset --hard HEAD~1 # удалить последний коммит git stash # временно сохранить изменения git stash pop # вернуть из stash ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ КОНФИГУРАЦИЯ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ git config --global user.name "Имя" git config --global user.email "email" git config --list # все настройки git remote -v # remote-адреса