Сайт вебмастера

Как выложить свой проект на GitHub.com

16-01-2015Время чтения ~ 4 мин.Git. GitHub 297493

Если вы, как и я, решили освоить git, то скорее всего у вас возникнет желание разместить свой проект на GitHub.com для публичного доступа.

Как новичку мне было сложно понять, каким образом создать связь между репозиториями. То есть локально у нас есть набор файлов проекта. Нужно каким-то образом выложить их на гитхаб. По сути это обычное копирование, но в git это работает не так очевидно. Пробившись несколько дней, я написал свою пошаговую инструкцию для новичков.

Два способа

Существует два способа для связи с гитхабом. Они далеко не так очевидны для новичков. Основной нюанс заключается в том, какой именно будет использован гитхабовский репозиторий: совершенно пустой (не инициализированный) или уже рабочий. Именно это будет определять два разных варианта работы.

Первый способ подходит для уже инициализированных удаленных репозиториев. Для связи GitHub с локальной копией, вначале следует клонировать гитхабовский репозиторий как локальный. Только после этого можно изменить локальный и отправить его на удалённый.

Второй способ используется для совершенно пустого гитхабовского репозитория. Если уже есть локальный репозиторий, то можно вручную связать его с гитхабом без клонирования.

Регистрация на GitHub.com

Вначале нужно зарегистрироваться на GitHub.com. Процедура простая, не будем на ней останавливаться. После этого нужно создать репозиторий. В поле «Repository name» следует указать имя, которое в будущем будет совпадать с каталогом проекта. Это удобно, хотя, локальный каталог может быть любым. Пусть проект называется «demo».

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

Здесь очень важнный момент. Если вы отметите любые опции (добавить .gitignore, лицензию и/или readme), то фактически это будет означать инициализацию репозитория. То есть это уже не пустой репозиторий, а наполненный и инициализировнный. В этом случае для связки придётся вначале клонировать удаленный. Это первый способ.

Если же вы не отметили ни одной опции, то гитхаб создаст совершенно пустой репозиторий без инициализации. И вот такой репозиторий можно связать с уже существующим локальным. Это второй способ.

После создания репозиторий получит уникальную ссылку, например: https://github.com/USER/demo.git - где USER — ваш логин в гитхабе. Эта ссылка потребуется для работы.

Установка Git

Я всё ставил с официального сайта Git. Там же на сайте есть руководство Book, где описаны все начальне шаги. Поэтому будем считать, что git установлен и настроен.

Рассмотрим два способа отдельно.

Первый способ

Наш проект размещается в каталоге /demo/. Было бы неплохо сохранить этот каталог и для дальнейшей работы. Для того, чтобы обезопасить себя, переименуем его /demo-temp/ любым файловым менеджером. То есть теперь каталога /demo/ у нас нет.

Запускаем git-bash и клонируем удаленный репозиторий на локальную машину:

git clone https://github.com/USER/demo.git

— где USER — ваше имя на гитхабе. Ссылку также можно скопировать со страницы репозитория в поле «HTTPS clone URL».

Ссылка репозитория GitHub

Появится каталог /demo/ который создал git. Он должен быть пустой, кроме подкаталога «.git» — это служебный каталог, и его трогать не нужно.

Теперь копируем в каталог /demo/ содержимое нашего проекта, которое мы сохранили в /demo-temp/. Всё, что мы сюда скопируем, будет вылождено на GitHub, поэтому желательно удалить все ненужные файлы. Если какие-то служебные файлы требуются для проекта, то их можно указать в файле .gitignore.

Выполняем команду

git add .

Это добавит все файлы для отслеживания git'ом. Проверить состояние (до и после add) можно командой

git status

Теперь делаем коммит (сообщение любое):

git commit -m "Add project"

Пока мы работаем с локальным репозиторием. То есть нужно настроить его так, чтобы он оказался в том виде, который отправится на гитхаб.

Для удобства можно сразу выставить метку версии (опять же любой вариант):

git tag v1.0

Теперь можно отправить изменения на гитхаб.

git push

Git может выдать сообщение, что команда push не настроена по-умолчанию. Пока не обращайте внимания на это сообщение. Нужно будет внести изменения в конфигурацию позже.

Git потребует ввести логин и пароль для GitHub.com. Учитывайте, что пароль полностью скрывается, поэтому не будет видно даже «звездочек». После ввода нажимаем Enter и git выполнит обновление удаленного репозитория.

Теперь нужно обновить метки на удаленном репозитории (если вы их задали).

git push --tags

Здесь также нужно будет ввести логин и пароль.

Всё, синхронизация выполнена! Временный каталог /demo-temp/ можно удалить или сохранить как старый резервный вариант.

Если мы зайдем на страницу репозитория на гитхабе, то увидим свой проект.

Для настройки push, если требуется, пишем:

git config --global push.default simple

Второй способ

Наш проект может размещатся в любом каталоге. Для него нужно инициализировать git. Это стандартная процедура:

git init
git add .
git commit -m "Init"

Теперь для проекта git работает и его можно использовать по своему усмотрению: добавлять версии, смотреть логи, делать ветки и т.п.

Для связи с GitHub'ом следует указать удаленный репозиторий:

git remote add origin https://github.com/USER/demo.git
git push -u origin master

Этот код указывает адрес удаленного и отправляет все изменения на гитхабовский сервер. Если мы зайдем на страницу репозитория на гитхабе, то также увидим свой проект.

Похожие записи
Комментарии (43) RSS
1 Даниил 2015-08-13 12:43:04

Спасибо, мил человек. Не хотелось бы терять несколько дней только для того, чтобы выложить репозиторий в git


2 Vladimir 2015-10-11 23:12:11

+1


3 Настя 2015-10-13 17:04:11

Спасибо большое! Много руководств для начинающих перечитала, но на свой вопрос получила ответ только здесь


4 Мир 2015-10-21 21:14:56

+1 спасибо за краткость, за**али мудаки, которые тыкают сотней терминов с мануалов, в итоге в голове каша, ничего не работает, когда надо-то тупо удобное логгирование действий =) К чему мне весь остальной маразм.


5 Аноним 2015-12-01 21:09:28

Спасибо большое!


6 Роман 2015-12-14 22:47:06

Спасибо, но нужно добавить две строчки

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

Где you@example.com - введите ваш емейл при регистрации на github,

и Your Name - ваш логин на github.


7 Андрей 2015-12-26 22:03:47

Кратко и просто, респект. А по онлайн-учебнику и мануалам пришлось разбираться 2 дня)

Краткая инструкция - это хорошо, но мануал почитать всё-равно надо.


8 Аноним 2016-03-06 21:49:31

ОХ и вай 2 дня потратил пока эту статью не нашел. Спасибо за краткость


9 Дим 2016-04-18 20:49:58

Когда происходит загрузка , то загружается весь рабочий стол (все файлы с рабочего стола)? почему и как это исправить?


10 Admin 2016-04-19 09:13:12 admin

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


11 Аноним 2016-12-20 21:28:28

Спасибо! Статья помогла!


12 Роман Синеоков 2017-02-17 21:25:48

Спасибо огромное! Помогло распутать путаницу после прохождения "интерактивного курса".


13 Яков 2017-02-25 14:52:38

Спасибо!


14 Юрий 2017-03-07 01:00:55
Статья плохая. Автор после клона не сделал создания репозитория. Без этого шаги не выполнимы. Так как эта главная суть, появилось впечатление что комментарии под статьей фейки. Это не заработает.

15 Admin 2017-03-07 09:12:03 admin

Может ваш комментарий фейк? У всех-то отлично работает.


16 Максим 2017-03-15 19:47:19

Спасибо, проделал всё вторым способом, но теперь есть необходимость изменить название папки (репозитория), как это сделать?)


17 Admin 2017-03-15 20:06:04 admin

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


18 Артем 2017-04-12 15:30:04

спасибо полезная инфа


19 Аноним 2017-06-06 20:43:32
Спасибо, проделал всё вторым способом, но теперь есть необходимость изменить название папки (репозитория), как это сделать?)

Для этого надо просто на сайте гитхаба удалить проект.


20 Слава 2017-07-03 00:18:09

я проделывал все вторым способом и в итоге получил

Permission denied (publickey).

fatal: Could not read from remote repository.

Please make sure you have the correct access rights

and the repository exists.

что тут надо сделать? генерировать ssh? как связать мой гит с моим гитхабом?


21 Admin 2017-07-03 10:54:40 admin

Как-то однажды была похожая ошибка. Оказалось Инет сильно глючил. Подождал, всё самой «рассосалось». :-) Если же речь об ssh-ключе, то вот есть описание: https://habrahabr.ru/post/266667/


22 Катерина 2017-08-03 21:03:50

А у меня аутентификация не проходит на последнем шаге во втором способе. Там же пароль имеется ввиду пароль непосредственно от аккаунта?


23 Admin 2017-08-03 22:29:10 admin

Да, верно.


24 Татьяна 2017-09-26 12:29:38

Премного благодарна! Все получилось, действительно работающая инструкция, все подробно, шаг за шагом.


25 Nabra 2017-11-21 10:26:06

Огромное спасибо! Очень долго пыталась разобраться, как это работает и что с этим делать.


26 mann66 2018-01-05 10:32:14

Спасибо! Отличный материал. Для начинающего работать с Git, просто супер!

Удачи.


27 Катя 2018-01-10 14:29:12

краткость-сестра таланта. отличная маленькая статья. ничего лишнего! спасибо. столько времени сэкономили))


28 Alexo 2018-02-04 19:01:49

Наконец-то кратко и по теме, побольше бы таких, спасибо!!!


29 Аноним 2018-09-07 15:00:27

Вот реально спасибо человеку, а то как-то совсем запутанной оказалась такая простая операция.


30 Аноним 2018-11-03 13:29:44

Помогите пожалуйста, у меня возникла проблема еще при git add , почему то высвечивает ошибку fatal: pathspec 'My_first_site' did not match any files

уже пол дня сижу не могу понять что я делаю не так, заранее спасибо)


31 Admin 2018-11-03 14:27:34 admin

Наверное нет локальной ветки.


32 xfiles 2019-05-23 20:34:45

Спасибо

Крайне лаконичное описание старта без лишних слов.


33 Ярослав 2019-09-08 10:01:32

Спасибо за это:

Здесь очень важный момент. Если вы отметите любые опции (добавить .gitignore, лицензию и/или readme), то фактически это будет означать инициализацию репозитория.

Выбрал только лицензию при инициализации и всё - начал мудохаться, никак не мог закинуть, ответ нашел только здесь.


34 Аноним 2020-01-30 13:44:31

Автор красавчик.

Остальные тексты про Git, это рассказы как крутить руль, через экскурс об устройстве карбюратора.


35 Константин 2020-02-06 15:25:41

Спасибо огромное автору статьи!

Просто и понятно))))


36 Наташа 2020-04-02 23:23:48

Автор- умничка! Изложил суть, и всё работает. Спасибо!! Коммент про карбюратор насмешил)))


37 Владимир 2020-06-14 23:16:11

А как изменить програму для ввода имени и пароля когда надо пушить проект на ГитХаб (если в кратце, когда в терминале вводишь команду что б запушить проект появляется диалоговое окно ввода имени и пароля, где копировать и вставлять нету возможности и не видишь что вводиш)

Может есть какие то лайфхаки?

  • извиняюсь за свой русский (сам украинец).

  • 38 Admin 2020-06-15 13:54:46 admin

    Это консоль — так и задумано. :) Изменить... даже не знаю, может только какая-то GUI-программа, вроде Git for Windows.


    39 Аноним 2020-10-05 20:42:13

    Немного подробнее и самый тупенький бы смог,а так ....воть

    Куда нужно вводить: // Если в код, куда именно

    git init
    git add .
    git commit -m "Init"

    // Init - это путь к файлу на компе (ехе или папке) ?

    Куда нужно вводить:

    git config --global user.email "you@example.com"
    git config --global user.name "Your Name"

    // Благодарю за понимание


    40 Admin 2020-10-06 08:20:04 admin

    Все команды нужно вводить в консоли по одной. Годится даже родная Windows: Пуск - Выполнить - cmd и дальше вводим команды.


    41 filin8804 2020-12-11 03:37:48

    Замечательная статья !

    Точно говорят - "Краткость - сестра таланта ..." ...

    Спасибо ...


    42 Вазген 2021-06-07 14:31:52

    Супер гуд!!!

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


    43 Lucius Kein 2022-11-25 00:28:49

    Шёл вторым путем - всё сработало. Автору респект