GitHub Desktop: как скачать, установить и работать с Git без командной строки
GitHub Desktop (гитхаб десктоп) — бесплатное приложение от GitHub для Windows и macOS, которое выполняет основные операции Git кнопками: клонирование, commit, push, pull, ветки, слияние и разрешение конфликтов. Скачать его можно на официальном сайте desktop.github.com, после установки достаточно войти в аккаунт GitHub и клонировать репозиторий.
Что такое GitHub Desktop
GitHub Desktop — бесплатное приложение с открытым исходным кодом, которое GitHub выпускает для Windows и macOS. Оно показывает изменённые файлы, историю коммитов и ветки в окне и выполняет основные команды Git нажатием кнопок. Внутри у приложения встроенная копия Git, поэтому отдельно устанавливать Git для работы в нём не обязательно.
Если коротко ответить на запрос «git desktop это»: это графический клиент Git, заточенный под GitHub. Он умеет клонировать ваши репозитории в один клик, создавать pull request и показывать статус проверок, но работает и с любым другим удалённым репозиторием по HTTPS, например на GitLab или собственном сервере.
Гитхаб десктоп хорошо подходит новичкам, дизайнерам, техническим писателям и всем, кому нужен понятный цикл «изменил — закоммитил — отправил». Опытные разработчики используют его для наглядного просмотра diff и выборочного коммита строк, а сложные операции делают в терминале.
Как скачать GitHub Desktop
Официальный адрес загрузки — desktop.github.com. Сайт сам определяет вашу систему и предлагает установщик для Windows или архив для macOS. Скачивайте программу только оттуда или со страницы релизов репозитория desktop/desktop на GitHub: сборки «гит хаб десктоп скачать бесплатно» со сторонних сайтов могут содержать что угодно.
Официальной версии для Linux нет. Для Linux существует поддерживаемый сообществом форк (репозиторий shiftkey/desktop) с пакетами .deb, .rpm и AppImage, но это неофициальная сборка. На Linux удобнее работать в терминале или во встроенном Git-клиенте редактора.
Установка на Windows
- Запустите скачанный файл GitHubDesktopSetup.
- Установщик ничего не спрашивает: программа ставится в профиль текущего пользователя и сразу открывается.
- Права администратора не нужны, обновления приложение скачивает само.
Для установки на компьютеры организации есть отдельный MSI-установщик, его ищите в документации GitHub Desktop.
Установка на macOS
- Распакуйте скачанный zip-архив.
- Перетащите GitHub Desktop в папку «Программы» (Applications).
- Запустите приложение и подтвердите открытие программы, загруженной из интернета.
Есть сборки для процессоров Intel и Apple Silicon; сайт обычно сам предлагает нужную. Также можно установить через Homebrew:
brew install --cask github
Вход в аккаунт и первая настройка
При первом запуске GitHub Desktop предлагает войти в GitHub.com. Нажмите кнопку входа — откроется браузер, где вы подтверждаете доступ приложения к аккаунту. Пароль в само приложение вводить не нужно, а двухфакторная аутентификация проходит в браузере как обычно. Для корпоративного сервера GitHub Enterprise есть отдельный вариант входа.
Затем приложение просит настроить Git: имя и e-mail, которые попадут в каждый коммит. Это те же user.name и user.email, что задаются командой git config --global, поэтому если Git уже был настроен, данные подставятся. Чтобы коммиты привязывались к вашему профилю на GitHub, укажите e-mail, добавленный в аккаунт, или служебный адрес вида ID+логин@users.noreply.github.com.
Позже эти параметры меняются в настройках: на Windows — через меню File → Options, на macOS — в меню GitHub Desktop → Settings. Там же выбирается внешний редактор (например, VS Code) и терминал, которые будут открываться из приложения, а также тема оформления.
Клонирование репозитория
Клонировать — значит скачать копию удалённого репозитория со всей историей. В GitHub Desktop для этого есть пункт File → Clone repository. В окне три вкладки: ваши репозитории на GitHub.com, репозитории GitHub Enterprise и вкладка URL, куда можно вставить любой адрес, в том числе с GitLab.
- Выберите репозиторий из списка или вставьте URL.
- Укажите локальную папку (Local path).
- Нажмите Clone и дождитесь окончания загрузки.
То же самое делает команда git clone. На странице репозитория на GitHub в меню кнопки Code есть пункт Open with GitHub Desktop — он откроет приложение с уже заполненным адресом. Если вы клонируете чужой репозиторий без права записи, приложение при первой попытке отправить изменения предложит сделать форк.
Существующую папку с Git-проектом добавляют через File → Add local repository, а новый репозиторий создают через File → New repository: можно сразу выбрать шаблон .gitignore, лицензию и создать README.
Как сделать commit в GitHub Desktop
Слева на вкладке Changes перечислены все изменённые файлы, справа — diff выбранного файла: удалённые строки красным, добавленные зелёным. Флажок рядом с файлом определяет, попадёт ли он в коммит. Это аналог индекса (staging area) и команды git add.
- Снимите флажки с файлов, которые не хотите коммитить.
- При необходимости щёлкните по отдельным строкам в diff, чтобы исключить их: так делается частичный коммит, как
git add -p. - Внизу введите краткое описание в поле Summary и при желании подробности в Description.
- Нажмите кнопку Commit to <имя ветки>.
Коммит создаётся только локально, на сервер он ещё не ушёл. Через git desktop commit удобно делать маленькие осмысленные коммиты: видно, что именно попадает в каждый из них. Если в коммите ошибка, сразу после него внизу появляется кнопка Undo — она отменяет последний коммит и возвращает изменения в рабочую папку, пока коммит не отправлен.
Файлы, которые не должны попадать в репозиторий, можно исключить через контекстное меню файла: пункт игнорирования допишет его в .gitignore. Для отмены незакоммиченных правок в том же меню есть Discard changes — изменения удаляются (в корзину системы на Windows и macOS), но лучше считать это необратимым действием.
Push, pull и fetch: синхронизация с сервером
Главная кнопка в верхней панели меняет название по ситуации. Это та самая точка, где git desktop push и git desktop pull выполняются одним щелчком.
| Надпись на кнопке | Что происходит | Команда Git |
|---|---|---|
| Publish repository | локальный репозиторий ещё не на GitHub: создать его и отправить | создание remote + git push -u |
| Publish branch | ветка есть только локально | git push -u origin ветка |
| Fetch origin | проверить, нет ли новых коммитов на сервере | git fetch |
| Pull origin | на сервере есть новые коммиты, забрать их | git pull |
| Push origin | есть локальные коммиты, отправить их | git push |
Рядом с надписью показывается число коммитов со стрелками вверх и вниз — сколько нужно отправить и сколько получить. Приложение периодически делает fetch в фоне, поэтому кнопка Pull появляется сама, когда коллеги что-то отправили.
Если ветка разошлась с сервером и у вас, и на сервере есть новые коммиты, push будет отклонён. Сначала сделайте Pull origin: Git сольёт изменения, а если они пересекаются, возникнет конфликт. Push с перезаписью истории (force push) приложение предлагает только после операций, которые меняют уже отправленные коммиты, например после rebase.
Ветки: создание, переключение, checkout
Ветки управляются через выпадающее меню Current branch в верхней панели. В нём список локальных и удалённых веток, поиск и кнопка New branch. Выбор ветки в списке — это git desktop checkout: приложение переключит рабочую папку на неё. Удалённую ветку, которой ещё нет локально, достаточно просто выбрать — будет создана локальная ветка с отслеживанием.
Новая ветка создаётся от текущей или от ветки по умолчанию — приложение спросит, если есть выбор. После создания она существует только у вас, поэтому кнопка сверху сменится на Publish branch. Переименование и удаление ветки — в меню Branch или в контекстном меню ветки в списке; при удалении можно отметить, чтобы ветка удалилась и на сервере.
Когда работа в ветке готова, в меню Branch есть пункт Create pull request: откроется браузер со страницей создания pull request на GitHub. Процесс ревью и слияния проходит уже на сайте.
Merge и rebase в GitHub Desktop
Чтобы влить другую ветку в текущую, выберите в меню Current branch пункт Choose a branch to merge into <ветка> (то же есть в меню Branch). Приложение заранее покажет, сколько коммитов будет влито и будут ли конфликты. Так выполняется git desktop merge — обычный git merge.
В том же меню есть Squash and merge, который сжимает все коммиты ветки в один, и Rebase current branch — git desktop rebase переносит ваши коммиты поверх выбранной ветки. После rebase уже отправленной ветки история на сервере и у вас различается, и кнопка Push сменится на Force push origin. Делайте это только в своей ветке, где никто, кроме вас, не работает.
На вкладке History можно перетаскивать коммиты: на другую ветку (это cherry-pick), друг на друга (squash) или менять порядок. Интерактивного rebase с полным набором действий нет — для него нужен git rebase -i в терминале.
Конфликты слияния
Если одни и те же строки изменены в обеих ветках, при merge, pull или rebase появится окно со списком конфликтных файлов. Для каждого можно открыть файл во внешнем редакторе или выбрать целиком одну из версий — вашу или входящую.
В редакторе конфликт выглядит стандартно:
<<<<<<< HEAD
const limit = 20;
=======
const limit = 50;
>>>>>>> feature/pagination
Оставьте нужный вариант, удалите маркеры и сохраните файл. Когда во всех файлах маркеры исчезнут, GitHub Desktop отметит их как разрешённые и включит кнопку продолжения слияния — она создаст merge-коммит. Если что-то пошло не так, слияние можно прервать кнопкой отмены в том же окне: это аналог git merge --abort.
Git stash в GitHub Desktop
Отдельной кнопки «stash» в главном окне нет, но механизм есть. Когда вы переключаетесь на другую ветку с незакоммиченными изменениями, приложение спрашивает, что с ними сделать: оставить на текущей ветке или перенести на новую. Вариант «оставить» прячет изменения в stash — так работает git stash в GitHub Desktop.
Спрятать изменения вручную можно через контекстное меню списка изменений (пункт Stash all changes). Вернувшись на ветку, вы увидите внизу вкладки Changes строку Stashed changes: там можно посмотреть спрятанные файлы и восстановить их (Restore) или удалить.
Ограничение: GitHub Desktop хранит только один stash на ветку. Если нужно несколько записей, git stash pop с выбором конкретной записи или git stash apply stash@{1}, используйте терминал — приложение откроет его в нужной папке через меню Repository.
Git LFS в GitHub Desktop
Git LFS хранит большие бинарные файлы (видео, PSD, модели) на отдельном сервере, а в репозитории остаются только указатели. GitHub Desktop поддерживает LFS: при клонировании или открытии репозитория, где используется LFS, он предлагает инициализировать Git LFS, после чего скачивает и отправляет большие файлы автоматически.
Но указать, какие файлы отслеживать через LFS, в интерфейсе нельзя. Это делается один раз в терминале, после чего git lfs в GitHub Desktop работает прозрачно:
git lfs install
git lfs track "*.psd"
git add .gitattributes
git commit -m "Track PSD files with Git LFS"
Учтите квоты: у бесплатных аккаунтов GitHub объём хранилища и трафика LFS ограничен, актуальные лимиты смотрите в настройках биллинга аккаунта.
Reset, revert и история
Вкладка History показывает коммиты текущей ветки и изменения в каждом. Через контекстное меню коммита доступны:
- Revert changes in commit — создаёт новый коммит, отменяющий выбранный. Безопасно даже для уже отправленных коммитов.
- Create branch from commit и Create tag — ветка или тег от любой точки истории.
- Amend commit — для последнего коммита: исправить сообщение или добавить файлы.
- Reset to commit — в новых версиях приложения: откатывает ветку к выбранному коммиту, сохраняя изменения в рабочей папке, как
git reset --mixed.
Варианта git desktop reset с жёстким удалением изменений (git reset --hard) в интерфейсе нет — это сделано намеренно, чтобы новичок не потерял работу. Если он нужен, используйте терминал, а потерянные коммиты ищите через git reflog.
Когда лучше командная строка
GitHub Desktop закрывает ежедневный цикл работы, но многие вещи в нём недоступны или неудобны:
- интерактивный rebase со всеми действиями,
git bisect,git reflog,git worktree; - несколько записей stash, подмодули, тонкая настройка remote;
- работа на сервере по SSH и автоматизация в скриптах и CI;
- Linux, где официальной версии нет.
Кроме того, на собеседованиях спрашивают именно команды, а понимание того, что делают fetch, merge и rebase, помогает и в GUI. Практичный подход — уверенно знать командную строку и пользоваться приложением там, где оно экономит время: для просмотра diff, частичных коммитов и разбора конфликтов. Из GitHub Desktop терминал открывается через меню Repository прямо в папке проекта.
Итог
Гитхаб десктоп — простой и бесплатный способ работать с Git на Windows и macOS: скачать с desktop.github.com, войти в аккаунт, клонировать репозиторий — и коммиты, push, pull, ветки и конфликты делаются кнопками. Для stash, LFS и reset возможности ограничены, а сложные операции остаются за терминалом. Удалённые репозитории, push, pull и командная работа через pull request подробно разобраны на практике в курсе по Git.
Частые вопросы
GitHub Desktop бесплатный?
Да, приложение полностью бесплатное и распространяется с открытым исходным кодом; платить нужно только за платные тарифы самого GitHub, если они вам нужны.
Нужно ли устанавливать Git отдельно для GitHub Desktop?
Нет, в приложение встроена своя копия Git. Но если вы хотите работать и в терминале, установите Git для своей системы отдельно.
Можно ли использовать GitHub Desktop с GitLab или Bitbucket?
Да, репозиторий можно клонировать по HTTPS-адресу на вкладке URL. Интеграция с pull request и входом через аккаунт работает только для GitHub.
Есть ли GitHub Desktop на русском языке?
Официального русского интерфейса нет, приложение на английском. Названия кнопок короткие и соответствуют командам Git, поэтому разобраться несложно.
Почему GitHub Desktop не видит изменения в файлах?
Чаще всего файл попал под правило в .gitignore или открыта другая папка репозитория. Проверьте путь в меню Current repository и содержимое .gitignore.
Эта тема подробно разобрана с практикой в курсе «Git с нуля до уверенного разработчика».
- GitHub и удалённые репозитории: ваш код в облаке
- Командная работа: форки, feature-ветки и pull request'ы