Если вы, как и я, решили освоить 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
Этот код указывает адрес удаленного и отправляет все изменения на гитхабовский сервер. Если мы зайдем на страницу репозитория на гитхабе, то также увидим свой проект.
Комментариев: 43 RSS
1Даниил13-08-2015 12:43
Спасибо, мил человек. Не хотелось бы терять несколько дней только для того, чтобы выложить репозиторий в git
2Vladimir11-10-2015 23:12
+1
3Настя13-10-2015 17:04
Спасибо большое! Много руководств для начинающих перечитала, но на свой вопрос получила ответ только здесь
4Мир21-10-2015 21:14
+1 спасибо за краткость, за**али мудаки, которые тыкают сотней терминов с мануалов, в итоге в голове каша, ничего не работает, когда надо-то тупо удобное логгирование действий =) К чему мне весь остальной маразм.
5Аноним01-12-2015 21:09
Спасибо большое!
6Роман14-12-2015 22:47
Спасибо, но нужно добавить две строчки
Где you@example.com - введите ваш емейл при регистрации на github,
и Your Name - ваш логин на github.
7Андрей26-12-2015 22:03
Кратко и просто, респект. А по онлайн-учебнику и мануалам пришлось разбираться 2 дня)
Краткая инструкция - это хорошо, но мануал почитать всё-равно надо.
8Аноним06-03-2016 21:49
ОХ и вай 2 дня потратил пока эту статью не нашел. Спасибо за краткость
9Дим18-04-2016 20:49
Когда происходит загрузка , то загружается весь рабочий стол (все файлы с рабочего стола)? почему и как это исправить?
10Admin19-04-2016 09:13
Не стоит располагать каталог проекта на рабочем столе. Научитесь пользоваться файловым менеджером.
11Аноним20-12-2016 21:28
Спасибо! Статья помогла!
12Роман Синеоков17-02-2017 21:25
Спасибо огромное! Помогло распутать путаницу после прохождения "интерактивного курса".
13Яков25-02-2017 14:52
Спасибо!
14Юрий07-03-2017 01:00
Статья плохая. Автор после клона не сделал создания репозитория. Без этого шаги не выполнимы. Так как эта главная суть, появилось впечатление что комментарии под статьей фейки. Это не заработает.
15Admin07-03-2017 09:12
Может ваш комментарий фейк? У всех-то отлично работает.
16Максим15-03-2017 19:47
Спасибо, проделал всё вторым способом, но теперь есть необходимость изменить название папки (репозитория), как это сделать?)
17Admin15-03-2017 20:06
На вскидку. Сделать новый репозиторий на гитхабе. На компе сделать новый каталог, связать их, а после кинуть файлы из старого каталога.
18Артем12-04-2017 15:30
спасибо полезная инфа
19Аноним06-06-2017 20:43
Для этого надо просто на сайте гитхаба удалить проект.
20Слава03-07-2017 00:18
я проделывал все вторым способом и в итоге получил
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
что тут надо сделать? генерировать ssh? как связать мой гит с моим гитхабом?
21Admin03-07-2017 10:54
Как-то однажды была похожая ошибка. Оказалось Инет сильно глючил. Подождал, всё самой «рассосалось». :-) Если же речь об ssh-ключе, то вот есть описание: https://habrahabr.ru/post/266667/
22Катерина03-08-2017 21:03
А у меня аутентификация не проходит на последнем шаге во втором способе. Там же пароль имеется ввиду пароль непосредственно от аккаунта?
23Admin03-08-2017 22:29
Да, верно.
24Татьяна26-09-2017 12:29
Премного благодарна! Все получилось, действительно работающая инструкция, все подробно, шаг за шагом.
25Nabra21-11-2017 10:26
Огромное спасибо! Очень долго пыталась разобраться, как это работает и что с этим делать.
26mann6605-01-2018 10:32
Спасибо! Отличный материал. Для начинающего работать с Git, просто супер!
Удачи.
27Катя10-01-2018 14:29
краткость-сестра таланта. отличная маленькая статья. ничего лишнего! спасибо. столько времени сэкономили))
28Alexo04-02-2018 19:01
Наконец-то кратко и по теме, побольше бы таких, спасибо!!!
29Аноним07-09-2018 15:00
Вот реально спасибо человеку, а то как-то совсем запутанной оказалась такая простая операция.
30Аноним03-11-2018 13:29
Помогите пожалуйста, у меня возникла проблема еще при git add , почему то высвечивает ошибку fatal: pathspec 'My_first_site' did not match any files
уже пол дня сижу не могу понять что я делаю не так, заранее спасибо)
31Admin03-11-2018 14:27
Наверное нет локальной ветки.
32xfiles23-05-2019 20:34
Спасибо
Крайне лаконичное описание старта без лишних слов.
33Ярослав08-09-2019 10:01
Спасибо за это:
Выбрал только лицензию при инициализации и всё - начал
мудохаться, никак не мог закинуть, ответ нашел только здесь.34Аноним30-01-2020 13:44
Автор красавчик.
Остальные тексты про Git, это рассказы как крутить руль, через экскурс об устройстве карбюратора.
35Константин06-02-2020 15:25
Спасибо огромное автору статьи!
Просто и понятно))))
36Наташа02-04-2020 23:23
Автор- умничка! Изложил суть, и всё работает. Спасибо!! Коммент про карбюратор насмешил)))
37Владимир14-06-2020 23:16
А как изменить програму для ввода имени и пароля когда надо пушить проект на ГитХаб (если в кратце, когда в терминале вводишь команду что б запушить проект появляется диалоговое окно ввода имени и пароля, где копировать и вставлять нету возможности и не видишь что вводиш)
Может есть какие то лайфхаки?
* извиняюсь за свой русский (сам украинец).
38Admin15-06-2020 13:54
Это консоль — так и задумано. :) Изменить... даже не знаю, может только какая-то GUI-программа, вроде Git for Windows.
39Аноним05-10-2020 20:42
Немного подробнее и самый тупенький бы смог,а так ....воть
Куда нужно вводить: // Если в код, куда именно
// Init - это путь к файлу на компе (ехе или папке) ?
Куда нужно вводить:
// Благодарю за понимание
40Admin06-10-2020 08:20
Все команды нужно вводить в консоли по одной. Годится даже родная Windows: Пуск - Выполнить - cmd и дальше вводим команды.
41filin880411-12-2020 03:37
Замечательная статья !
Точно говорят - "Краткость - сестра таланта ..." ...
Спасибо ...
42Вазген07-06-2021 14:31
Супер гуд!!!
Спасибо милый человек, вот бы все так просто писали, а то мозг людям выносят, разучились инструкции писать, только и делают что запутывают..
43Lucius Kein25-11-2022 00:28
Шёл вторым путем - всё сработало. Автору респект