Добавление существующего проекта в GitHub с помощью GitHub Desktop
Существующий репозиторий Git можно добавить в GitHub с помощью GitHub Desktop.
- С помощью командной строки удалите все команды git remote, настроенные в настоящее время для данного репозитория.
# Show existing remotes $ git remote -v > origin git@git-server/octocat/hello-world.git (fetch) > origin git@git-server/octocat/hello-world.git (push) # Remove existing remotes $ git remote remove origin

Как правильно залить проект в GitHub с помощью GitHub Desktop?
Скажите, пожалуйста, что я делаю не так. Пытаюсь залить проект через GitHub Desktop, нажимаю создать новый репозиторий, выбираю папку, а у меня появляется только файл .gitattribute . Не судите, если вопрос глупый.
Отслеживать
user262779
задан 20 янв 2019 в 20:22
Шахов Глеб Шахов Глеб
145 2 2 серебряных знака 10 10 бронзовых знаков
Ещё появляется папка .git , но она скрытая. Больше ничего и не будет — вы создали новый, пустой репозиторий.
20 янв 2019 в 20:37
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Для работы с GitHub Desktop на официальном сайте GitHub есть документация (на английском). Для изучения специфики работы данного приложения, ознакомьтесь с ней пройдя по ссылке.
С учетом того, что GitHub Desktop у вас уже установлен и с интерфейсом вы ознакомились, далее просто необходимо авторизироватся и добавить необходимый репозиторий.
Как добавить? Все просто. Есть два способа:
- Через интерфейс сайта GitHub. Находясь в нужном репозитории, нажимаем кнопку склонировать репозиторий в GitHub Desktop (Save [имя_репозитория] to your computer and use it in GitHub Desktop). После этого вам будет предложено выбрать папку, в которую склонируется проект. Далее он автоматически скачается и запустится в GitHub Desktop.
- Склонировать напрямую из GitHub Desktop. Для этого нужно нажать на значок плюса в левом верхнем углу интерфейса и перейти на вкладку Clone. Выбираем в списке нужный нам репозиторий и нажимаем Clone. После этого будет предложено выбрать папку, в которую склонируется проект.
Теперь, независимо от выбранного способа клонирования, с репозиторием можно работать.
Практическое занятие «Используем клиент GitHub для десктопа»
Хотя большинство разработчиков используют командную строку при работе с системами контроля версий, существует много доступных клиентов с графическим интерфейсом, которые потенциально могут упростить процесс. Такие инструменты могут быть полезны, когда нужно увидеть, что изменилось в файле, поскольку графический интерфейс пользователя может быстро выделить и указать на происходящие изменения.
Типичный процесс использования десктопного клиента
В этом разделе мы научимся использовать десктопный клиент GitHub для управления процессом Git.
Note: Вместо работы в Wiki GitHub (как делали в предыдущем разделе по GitHub ), будем работать в обычном Git-репозитории. В Wiki GitHub есть некоторые ограничения, когда дело касается отправки запросов.
Для настройки репозитория Git используя клиента GitHub Desktop:
- Скачаем и установим GitHub Desctop. Запускам приложение и авторизуемся. (По идее у нас уже есть аккаунт на GitHub, но есть нет, то создаем его).
- Заходим на страницу github.com и ищем наш репозиторий, созданный в предыдущем разделе. Открываем именно репозиторий, а не страницу Wiki. (Если не практические занятия из прошлого раздела не сделаны, то создаем новый репозиторий).
- Нажимаем кнопку Clone or download и выбираем Open on desktop

- Открываем приложение GitHub Desktop и переходим в File > Clone Repository .
- В диалоговом окне выбираем Open GitHub Desktop.app. GitHub Desktop должен запуститься с диалоговым окном «Клонировать репозиторий», содержащим запрос, где клонировать репозиторий. При желании локальный путь можно изменить.
- Переходим на вкладку URL и вставляем URL-адрес клона. В поле Local Path выбираем, куда клонировать репозиторий. Например:

- Нажимаем Clone
- Переходим в клонированный репозиторий и, либо добавляем простой текстовый файл с некоторым содержимым, либо вносим изменения в существующий файл.
- Возвращаемся в GitHub Desktop. Видим, что новый файл добавлен список незафиксированных изменений в левой колонке.

В списке измененных файлов зеленый знак + означает добавление нового файла. Желтый круг означает изменения существующего файла.
- В левом нижнем углу клиента GitHub Desktop (где написано Summary и Description) вводим описание коммита и кликаем Commit to master.
Когда мы фиксируем изменения, на левой панели исчезает список незафиксированных изменений. Однако изменения мы зафиксировали только локально. Коммит еще нужно отправить в удаленный (origin) репозиторий. («Origin» — это псевдоним, который относится к удаленному хранилищу.)

- Наверху кликаем Push origin
Если посмотреть репозиторий в сети, то увидим, что внесенные изменения были перенесены в основную ветку в источнике. Можно перейти на вкладку History в клиенте GitHub Desktop (вместо вкладки Changes) или перейти в меню View > Show History, чтобы просмотреть ранее внесенные изменения.
Note: Многие предпочитают использовать терминал вместо графического интерфейса GitHub для рабочего стола, графический интерфейс упрощает визуальное восприятие изменений, внесенных в репозиторий. При желании можно комбинировать использование командной строки и клиента рабочего стола.
Создание ветки
Теперь создадим ветку, внесем изменения и посмотрим как влияют изменения на ветку.

- В GitHub Desktop переходим в Branch > New Branch и создаем новую ветвь. Назовем ее «development» и нажмем Create Branch.
После создания ветки, в центре раскрывающееся меню будет указывать на ту ветку, в которой мы работаем. Создание ветки копирует существующий контент (из ветки master) в новую ветку (development).

- Откроем файл, которые ранее создали и внесем в него изменения, например добавим новую строку с текстом. Сохраним изменения.
- Вернемся в GitHub Desktop и обратим внимание, что на вкладке «Changes» у нас появились новые измененные файлы.

Изменения в файле показывают удаленные строки красным и новые строки зеленым цветом. Цвета помогают увидеть, что изменилось.
- Закоммитим изменения в левом нижнем углу и кликнем на Commit to development.
- Нажимаем Publish branch (в верхней части окна GitHub Desktop), чтобы сделать локальную ветку также доступной в Origin (GitHub). (Всегда существует две версии ветки: локальная версия и удаленная версия.)
- Вернемся в основную ветку (выбираем master в раскрывающемся меню). Затем посмотрим на свой файл (в текстовом редакторе). Стоит обратить внимание, что изменения, внесенные нами во время редактирования в ветке development , не отображаются в основной ветке.
Обычно новую ветку создают, когда вносят значительные изменения в контент. Например, нужно обновить раздел («Раздел X») в своих документах. Возможно, опубликовать другие обновления не нужно, прежде чем публиковать подробные изменения в Разделе X. Если работа была в той же ветке, было бы сложно выборочно загружать обновления для нескольких файлов за пределами Раздела X без отправки обновлений, которые сделали к файлам в разделе Х.
Посредством ветвления можно ограничить свои изменения конкретной версией, которая не запускается, пока не будут готовы изменения к объединению с master веткой.
Слияние (merge) ветки development с master
Теперь научимся объединять наши ветки.

- В GitHub Desktop переключитесь на ветку, в которую вы хотите объединить ветку development. В селекторе веток выберите ветку master.
- Переходим Branch > Merge into Current Branch
- В окне слияния выбираем ветку development и кликаем Merge development into master
После слияния веток изменения будут отображаться и в файле в ветке master.
- Нажимаем Push origin для отправки изменений в удаленный репозиторий.
После этого наши изменения будут отображены в репозитории на GitHub.
Слияние ветки через pull request
Теперь объединим ветку development с master, используя процесс pull request. Мы притворимся, что клонировали репозиторий разработчика, и хотим, чтобы разработчик влил наше изменение в ветку development. (Другими словами, у нас может нет прав на слияние веток в мастер.) Для этого мы создадим запрос на извлечение (pull request).
- Как выше, переключаемся на ветку development, вносим изменения в содержимое файла, сохраняем и подтверждаем изменения. После внесения изменений нажимаем Push origin, чтобы отправить наши изменения в удаленную версию ветки разработки на GitHub.
- В GitHub Desktop, с выбранной веткой development, переходим в Branch > Create Pull Request.
На сайте GiHub pull request выглядит так:

Стрелка влево (указывающая из ветви development в направлении master) указывает, что запрос на извлечение («PR») хочет объединить ветку development с основной веткой.

- Напишем причину запроса на извлечение и нажмем Create pull request.
- На этом этапе разработчики получат запрос по электронной почте с просьбой объединить их изменения. Попробуем себя в роли разработчика, перейдя на вкладку Pull requests (на GitHub), чтобы проверить и подтвердить запрос. Пока запрос на слияние не вызывает конфликтов, видна кнопка Merge pull request.
- Чтобы увидеть, какие изменения объединяются с мастером, можете щелкнуть вкладку Files changed (которая появляется на дополнительной навигационной панели вверху). Затем кликаем Merge pull request для объединения в ветке и Confirm merge, чтобы завершить объединение.
- Теперь получим обновления, которые мы слили в master ветку, в свою локальную копию. В GitHub Desktop выбираем master ветку и кликаем кнопку Fetch origin. Fetch получает последние обновления из источника, но не обновляет локальную рабочую копию с изменениями.
После нажатия кнопка Fetch origin изменится на Pull Origin.
- Нажимаем на Pull Origin чтобы обновить локальную копию с полученными изменениями.
Проверим файлы и обратим внимание, что обновления, которые изначально были в ветке development, теперь отображаются и в master.
Note: Более подробное руководство по созданию запросов извлечения с использованием интерфейса GitHub см. В разделе Процесс Pull request на GitHub. Работать с Pull Request нужно уметь, если планируется участие в опен-сорс проектах.
Управление конфликтами слияния
Предположим, мы внесли изменения в свою локальную копию файла в хранилище, а кто-то другой изменяет этот же файл, используя интерфейс браузера GitHub.com. Изменения противоречат друг другу. Что происходит?
Когда нажимаем Push origin от клиента GitHub Desktop, увидим сообщение о том, что хранилище было обновлено с момента последнего извлечения:
“The repository has been updated since you last pulled. Try pulling before pushing.”
Кнопка, которая раньше говорила «Push origin», теперь говорит «Pull origin». кликаем «Pull origin». Теперь получаем еще одно сообщение об ошибке, которое говорит:
“We found some conflicts while trying to merge. Please resolve the conflicts and commit the changes.”
Если решим зафиксировать свои изменения, то увидим сообщение, которое гласит:
“Please resolve all conflicted files, commit, and then try syncing again.”
GitHub Desktop отображает восклицательный знак рядом с файлами с конфликтами слияния. Откройте файл конфликта и найдите маркеры конфликта ( >>>>>> ). Например, такие:
>>>>>> c163ead57f6793678dd41b5efeef372d9bd81035
В командной строке можно запустить git status , чтобы увидеть, какие файлы имеют конфликты.) Содержимое в HEAD показывает локальные изменения. Содержание ниже ======= показывает изменения, внесенные в другом месте.
Устраняем все конфликты, изменив содержимое маркеров, а затем удалив маркеры. Например, обновите содержимое до этого:
This is an edit I made locally.
Теперь нужно снова добавить файл в Git. В GitHub Desktop внесем изменения в обновленные файлы. Кликаем Push origin. Обновления на локальном компьютере отправляются на удаленный компьютер без каких-либо конфликтов.
Заключение
Чем больше использовать GitHub, тем больше опыта работы с нужными рабочими процессами. Git — это мощная платформа для совместной работы, в которой есть множество команд, рабочих процессов и функций, которые можно использовать для различных сценариев. Несмотря на разнообразие команд и рабочих процессов Git, наиболее используемые сценарии ограничены по объему и доступны для изучения без особых усилий. Довольно скоро такие рабочие процессы станут автоматическими.
Используемые в этом занятии команды в интерфейсе GitHub Desktop можно попробовать и в командной строке. Возможно, что командная строка понравится больше. Но GitHub Desktop может стать хорошей отправной точкой.
Установка GitHub Desktop и его базовое использование
Так как эти темы довольно обширные, в статье рассмотрим их обзорно, с минимально необходимой информацией, для общего понимания и базовой работы с GitHub Desktop.
Что такое Git
Git (произносится «гит») — распределённая система управления версиями.
Система управления версиями — определение из Wikipedia
Система управления версиями (от англ. Version Control System, VCS или Revision Control System) — программное обеспечение для облегчения работы с изменяющейся информацией. Система управления версиями позволяет хранить несколько версий одного и того же документа, при необходимости возвращаться к более ранним версиям, определять, кто и когда сделал то или иное изменение, и многое другое.
Если мы верстаем или программируем, не используя систему Git, то в нашем распоряжении только тот код, который пишем сейчас.
При использовании системы Git мы запоминаем версии кода на нужных нам этапах. Имеем доступ к ранним версиям. Можем смотреть изменения, которые были сделаны между версиями. Можем отменить изменения до любой из версий.
В статье часто будем использовать термин Git, чтобы проще было понять, представим, что Git это условная “записная книжка”, в которую будем записывать, какие изменения происходят в нашем проекте. Добавили файл — записываем, что файл добавлен. Изменили файл — записываем изменения, которые были сделаны в файле. Удалили файл — записываем что файл был удален. И все эти записи храняться в “записной книжке” Git
Технически Git для проекта — это скрытая папка .git в папке вашего проекта. Скрытая папка .git содержит служебные файлы, которые нельзя изменять и удалять
У Git много возможностей, но на данный момент рассматриваем только базовые
Что такое GitHub
GitHub — крупнейший веб-сервис для хостинга IT-проектов и их совместной разработки.
Введем еще один термин, который также будет часто встречаться в статье и в работе с GitHub Desktop — репозиторий.
Репозиторий — определение из Wikipedia
Репозито́рий (англ. repository), хранилище — место, где хранятся и поддерживаются какие-либо данные. Чаще всего данные в репозитории хранятся в виде файлов, доступных для дальнейшего распространения по сети.
Если говорить совсем просто, то репозиторий — это наш проект (папка с файлами и системой Git)
Репозиторий может храниться локально на компьютере или чаще всего на таких веб-сервисах, как GitHub
Для чего нужен Github Desktop
Работа с Git подразумевает работу через командную строку, но компания GitHub выпустила приложение, которое сильно упрощает использование Git
Для работы с GitHub Desktop, необходимо зарегистрироваться на GitHub
Регистрация на GitHub
Переходим на официальный сайт GitHub
На главной странице заполняем форму справа и нажимаем “Sign up for GitHub”

Проходим проверку и нажимаем “Join a free plan”

На следующей странице можно заполнить небольшую анкету (можно не заполнять)

На этой же странице спускаемся в самый низ и нажимаем “Complete setup”

Далее для завершения регистрации просят подтвердить свой email адрес.
Проверяем свою почту. Если письмо пришло, переходим к следующему пункту.
Если письмо не пришло, нажимаем “Resend verification email”.
Если по-прежнему письмо не приходит, можно проверить и изменить настройки — нажимаем “Change your email settings”

В письме от Github нажимаем “Verify email address”

Аккаунт GitHub успешно создан
Установка GitHub Desktop
Переходим на официальный сайт GitHub Desktop
Нажимаем “Download for Windows (64bit)” (операционная система может отличаться)

Запускаем скачанный файл. После установки в появившемся окне нажимаем “Sign in to GitHub.com”

В открывшемся окне браузера вводим в форму свои данные, как при регистрации, и нажимаем “Sign in”

Если браузер запросит, то подтвердить, что нужно “Открыть приложение GitHub Desktop”

Далее регистрационные данные перенесутся в форму конфигурации (настроек) Git — нажимаем “Continue”

Отключаем пункт “Yes, submit periodic usage stats”, если не хотите периодически передавать статистику работы GitHub Desktop и нажимаем “Finish”

Далее видим начальное окно GitHub Desktop

“Create a tutorial repository…“ — создать обучающий репозиторий
“Clone repository from the Internet…“ — клонировать (скопировать/скачать) репозиторий из GitHub к себе на компьютер
“Create a New Repository on your hard drive…“ — создать новый репозиторий на вашем жестком диске (на вашем компьютере) и добавить систему Git в проект
“Add an Existing Repository from your hard drive…“ — добавить на GitHub репозиторий, который уже есть на вашем компьютере и использует Git
Справа будут отображаться ваши репозитории, которые уже загружены на GitHub, но если только что зарегистрировались, то список будет пуст.
Создаём новый репозиторий
Создаём у себя на компьютере (например, на диске C:) папку projects, где локально будут храниться все наши репозитории.
Переходим в Github Desktop, нажимаем на начальном экране “Create a New Repository on your hard drive…“ или File > New Repository

В открывшемся окне в поле Name пишем название репозитория. В поле Description — описание репозитория, если необходимо. В Local Path выбираем созданную на диске C: папку projects, остальное оставляем по-умолчанию и нажимаем “Create repository”

В папке projects появился репозиторий Project-1

В репозитории Project-1 на данный момент находятся только необходимые служебные файлы Git.

На данный момент репозиторий расположен только локально на компьютере в папке Project-1. Чтобы репозиторий появился в аккаунте GitHub и хранился там, нажимаем “Publish repository”

В появившемся окне оставляем все по-умолчанию. Пункт “Keep this code private” оставляем отмеченным, чтобы репозиторий, пока что, был виден только нам, потом в любой момент репозиторий можно будет сделать открытым, чтобы его видели другие пользователи GitHub. Нажимаем “Publish repository”

Теперь репозиторий скопирован в аккаунт GitHub. Переходим в браузере на GitHub. Сверху справа нажимаем на круглую иконку аккаунта и выбираем пункт “Your repositories”

На странице наших репозиториев появился созданный репозиторий Project-1

Откроем страницу репозитория, нажав на название репозитория в списке. На данный момент в репозитории только служебные файлы.

Создадим на компьютере в папке Project-1 файл index.html и напишем в нем минимальную разметку.

На данный момент файл index.html расположен только локально в папке Project-1. Локальная система Git, которая была создана вместе с репозиторием, об этом файле ничего не знает.
Чтобы Git узнала, что в репозиторий добавился файл, необходимо сообщить это через команду Commit.
Commit — фиксирование текущего состояния файлов, звучит как коммит.
Коммитам необходимо давать названия.
Откроем Github Desktop. Во вкладке Changes видим созданный index.html.
Вводим в поле ниже название коммита — add index.html . Затем нажимаем “Commit to main”, чтобы зафиксировать данное состояние файлов в локальную систему Git. (На данный момент не будем углубляться в ветвление Git)

На данный момент мы зафиксировали файлы в текущем состоянии и сделали запись об этом в локальную систему Git.
Далее, чтобы передать изменения в репозиторий на GitHub, нажимаем “Push origin”

Переходим в наш репозиторий на GitHub и убеждаемся, что файл index.html был добавлен

Далее внесем изменения в файл index.html — добавим заголовок
Project-1

Переходим в GitHub Desktop, видим что index.html был изменен, вводим название нового коммита — add h1 и нажимаем “Commit to main”

И снова передаем изменения в репозиторий на GitHub — нажимаем “Push origin”

Видим, что index.html был изменен при коммите add h1

Нажав на название файла index.html, убеждаемся что заголовок добавлен

На данный момент умеем создать репозиторий, делать коммиты, и передавать на GitHub
Далее рассмотрим работу с GitHub Desktop с нескольких рабочих мест
Клонирование репозитория
Предположим, мы работаем с проектом дома на компьютере и в офисе на ноутбуке. Чтобы на ноутбуке у нас была актуальная версия проекта, мы должны получить ее из репозитория на GitHub — это действие называется “клонирование”.
Создадим теперь на ноутбуке папку для репозиториев, например notebook projects
Устанавливаем на ноутбук GitHub Desktop, заходим под своим аккаунтом. Нажимаем File > Clone Repository
В списке выбираем необходимый репозиторий
В пункте Local path, нажимаем кнопку “Choose…“ и выбираем созданную папку notebook projects. Далее нажимаем “Clone…“

Репозиторий клонирован (скопирован) в папку Project-1.

Если в GitHub Desktop посмотреть вкладку History, то увидим всю историю коммитов

Внесем изменения в index.html на ноутбуке, добавим
Add text from Notebook
и сделаем коммит c названием add text from notebook , далее нажимаем “Commit to main”

Отправим коммит в репозиторий на GitHub — нажимаем “Push origin”

Коммит виден в репозитории на GitHub

В index.html добавлен
Add text from Notebook

Теперь возвращаемся из офиса домой, открываем GitHub Desktop на компьютере, и чтобы получить изменения, сделанные на ноутбуке, нажимаем “Fetch origin” — проверяем, есть ли отличия локального репозитория на компьютере и репозитория на GitHub

Отличия есть, поэтому далее нажимаем “Pull origin”

И получаем актуальный проект со всеми изменениями

Преимущества
Мы рассмотрели только базовое использование Git, GitHub, GitHub Desktop, но уже можем выделить достаточно много преимуществ (на самом деле их намного больше, как и возможностей)
- Возможность фиксировать состояния проекта на необходимых этапах, и иметь доступ к ранним версиям
- Умение пользоваться Git очень часто встречается в вакансиях — будет вашим преимуществом
- На любом устройстве, в любой момент можете получить доступ до актуального проекта
- Возможность делиться своим проектом с другими пользователями GitHub
- Иметь проекты на GitHub большой плюс при поиске работы
- Возможность пользоваться всеми преимуществами Git без командной строки
Итоги
Возможно, на первый взгляд, покажется сложным, но после небольшой практики, вся базовая работа с GitHub Desktop на начальном этапе сойдется к тому, что вы поработали с проектом на работе > сделали коммит (“Commit to main”) > отправили на GitHub (“Push origin”). Пришли домой > получили изменения из GitHub (“Pull origin”) и продолжаете работу дома.
Возможно, через некоторое время напишу статью про другие возможности GitHub Desktop
Больше информации на официальном сайте GitHub Desktop