Инструкция

GitHub Desktop: как скачать, установить и работать с Git без командной строки

Обновлено: · Skillaria.Top

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

  1. Запустите скачанный файл GitHubDesktopSetup.
  2. Установщик ничего не спрашивает: программа ставится в профиль текущего пользователя и сразу открывается.
  3. Права администратора не нужны, обновления приложение скачивает само.

Для установки на компьютеры организации есть отдельный MSI-установщик, его ищите в документации GitHub Desktop.

Установка на macOS

  1. Распакуйте скачанный zip-архив.
  2. Перетащите GitHub Desktop в папку «Программы» (Applications).
  3. Запустите приложение и подтвердите открытие программы, загруженной из интернета.

Есть сборки для процессоров 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.

  1. Выберите репозиторий из списка или вставьте URL.
  2. Укажите локальную папку (Local path).
  3. Нажмите 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.

  1. Снимите флажки с файлов, которые не хотите коммитить.
  2. При необходимости щёлкните по отдельным строкам в diff, чтобы исключить их: так делается частичный коммит, как git add -p.
  3. Внизу введите краткое описание в поле Summary и при желании подробности в Description.
  4. Нажмите кнопку 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 с нуля до уверенного разработчика».

Перейти к курсу