Как выложить свой проект на GitHub.com
16-01-2015Reading time ~ 4 min.Git. GitHub 298136
Если вы, как и я, решили освоить git, то скорее всего у вас возникнет желание разместить свой проект на GitHub.com для публичного доступа.
Как новичку мне было сложно понять, каким образом создать связь между репозиториями. То есть локально у нас есть набор файлов проекта. Нужно каким-то образом выложить их на гитхаб. По сути это обычное копирование, но в git это работает не так очевидно. Пробившись несколько дней, я написал свою пошаговую инструкцию для новичков.
Два способа
Существует два способа для связи с гитхабом. Они далеко не так очевидны для новичков. Основной нюанс заключается в том, какой именно будет использован гитхабовский репозиторий: совершенно пустой (не инициализированный) или уже рабочий. Именно это будет определять два разных варианта работы.
Первый способ подходит для уже инициализированных удаленных репозиториев. Для связи GitHub с локальной копией, вначале следует клонировать гитхабовский репозиторий как локальный. Только после этого можно изменить локальный и отправить его на удалённый.
Второй способ используется для совершенно пустого гитхабовского репозитория. Если уже есть локальный репозиторий, то можно вручную связать его с гитхабом без клонирования.
Регистрация на GitHub.com
Вначале нужно зарегистрироваться на GitHub.com. Процедура простая, не будем на ней останавливаться. После этого нужно создать репозиторий. В поле «Repository name» следует указать имя, которое в будущем будет совпадать с каталогом проекта. Это удобно, хотя, локальный каталог может быть любым. Пусть проект называется «demo».
Здесь очень важнный момент. Если вы отметите любые опции (добавить .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».
Появится каталог /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
Этот код указывает адрес удаленного и отправляет все изменения на гитхабовский сервер. Если мы зайдем на страницу репозитория на гитхабе, то также увидим свой проект.
Спасибо, мил человек. Не хотелось бы терять несколько дней только для того, чтобы выложить репозиторий в git
+1
Спасибо большое! Много руководств для начинающих перечитала, но на свой вопрос получила ответ только здесь
+1 спасибо за краткость, за**али мудаки, которые тыкают сотней терминов с мануалов, в итоге в голове каша, ничего не работает, когда надо-то тупо удобное логгирование действий =) К чему мне весь остальной маразм.
Спасибо большое!
Спасибо, но нужно добавить две строчки
Где you@example.com - введите ваш емейл при регистрации на github,
и Your Name - ваш логин на github.
Кратко и просто, респект. А по онлайн-учебнику и мануалам пришлось разбираться 2 дня)
Краткая инструкция - это хорошо, но мануал почитать всё-равно надо.
ОХ и вай 2 дня потратил пока эту статью не нашел. Спасибо за краткость
Когда происходит загрузка , то загружается весь рабочий стол (все файлы с рабочего стола)? почему и как это исправить?
Не стоит располагать каталог проекта на рабочем столе. Научитесь пользоваться файловым менеджером.
Спасибо! Статья помогла!
Спасибо огромное! Помогло распутать путаницу после прохождения "интерактивного курса".
Спасибо!
Может ваш комментарий фейк? У всех-то отлично работает.
Спасибо, проделал всё вторым способом, но теперь есть необходимость изменить название папки (репозитория), как это сделать?)
На вскидку. Сделать новый репозиторий на гитхабе. На компе сделать новый каталог, связать их, а после кинуть файлы из старого каталога.
спасибо полезная инфа
Для этого надо просто на сайте гитхаба удалить проект.
я проделывал все вторым способом и в итоге получил
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
что тут надо сделать? генерировать ssh? как связать мой гит с моим гитхабом?
Как-то однажды была похожая ошибка. Оказалось Инет сильно глючил. Подождал, всё самой «рассосалось». :-) Если же речь об ssh-ключе, то вот есть описание: https://habrahabr.ru/post/266667/
А у меня аутентификация не проходит на последнем шаге во втором способе. Там же пароль имеется ввиду пароль непосредственно от аккаунта?
Да, верно.
Премного благодарна! Все получилось, действительно работающая инструкция, все подробно, шаг за шагом.
Огромное спасибо! Очень долго пыталась разобраться, как это работает и что с этим делать.
Спасибо! Отличный материал. Для начинающего работать с Git, просто супер!
Удачи.
краткость-сестра таланта. отличная маленькая статья. ничего лишнего! спасибо. столько времени сэкономили))
Наконец-то кратко и по теме, побольше бы таких, спасибо!!!
Вот реально спасибо человеку, а то как-то совсем запутанной оказалась такая простая операция.
Помогите пожалуйста, у меня возникла проблема еще при git add , почему то высвечивает ошибку fatal: pathspec 'My_first_site' did not match any files
уже пол дня сижу не могу понять что я делаю не так, заранее спасибо)
Наверное нет локальной ветки.
Спасибо
Крайне лаконичное описание старта без лишних слов.
Спасибо за это:
Выбрал только лицензию при инициализации и всё - начал мудохаться, никак не мог закинуть, ответ нашел только здесь.
Автор красавчик.
Остальные тексты про Git, это рассказы как крутить руль, через экскурс об устройстве карбюратора.
Спасибо огромное автору статьи!
Просто и понятно))))
Автор- умничка! Изложил суть, и всё работает. Спасибо!! Коммент про карбюратор насмешил)))
А как изменить програму для ввода имени и пароля когда надо пушить проект на ГитХаб (если в кратце, когда в терминале вводишь команду что б запушить проект появляется диалоговое окно ввода имени и пароля, где копировать и вставлять нету возможности и не видишь что вводиш)
Может есть какие то лайфхаки?
Это консоль — так и задумано. :) Изменить... даже не знаю, может только какая-то GUI-программа, вроде Git for Windows.
Немного подробнее и самый тупенький бы смог,а так ....воть
Куда нужно вводить: // Если в код, куда именно
// Init - это путь к файлу на компе (ехе или папке) ?
Куда нужно вводить:
// Благодарю за понимание
Все команды нужно вводить в консоли по одной. Годится даже родная Windows: Пуск - Выполнить - cmd и дальше вводим команды.
Замечательная статья !
Точно говорят - "Краткость - сестра таланта ..." ...
Спасибо ...
Супер гуд!!!
Спасибо милый человек, вот бы все так просто писали, а то мозг людям выносят, разучились инструкции писать, только и делают что запутывают..
Шёл вторым путем - всё сработало. Автору респект