Github как залить проект через консоль
Перейти к содержимому

Github как залить проект через консоль

  • автор:

Работа с Git через консоль

Задача: форкнуть репозиторий в GitHub, создать ветку и работать с кодом.

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

Когда мы пишем код, мы постоянно туда что-то добавляем, удаляем, и иногда всё может ломаться. Поэтому перед любыми изменениями стоит сделать копию проекта. Если собирать проекты в папки с именами проект1 , проект1_финал и проект2_доделка , вы быстро запутаетесь и точно что-нибудь потеряете. Поэтому для работы с кодом используют системы контроля версий.

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

Git — самая популярная система контроля версий. С Git можно работать через командную строку (или терминал). В каждой системе своя встроенная программа для работы с командной строкой. В Windows это PowerShell или cmd, а в Linux или macOS — Terminal. Вместо встроенных программ можно использовать любую другую — например, Git Bash в Windows или iTerm2 для macOS.

Как работает терминал: мы вводим команду и получаем ответ компьютера — или всё получилось, или где-то ошибка, или нужно ввести что-то ещё — например, пароль. Поэтому большая часть этой инструкции состоит из команд для терминала. Сначала будет непривычно, но вам понравится.

Но давайте по порядку — установим Git на компьютер.

Устанавливаем и настраиваем Git

Windows. Скачайте Git для Windows, запустите exe-файл, следуйте инструкциям.

macOS. Скачайте Git для macOS и запустите dmg-файл. Если он не запускается, зайдите в Системные настройки — Безопасность и нажмите кнопку Open anyway (Всё равно открыть).

Linux. Установите Git через встроенный менеджер пакетов. Если у вас Ubuntu, используйте команду sudo apt-get install git . Команды для других дистрибутивов можно посмотреть здесь.

Как проверить, что Git установился

Откройте терминал и введите команду

git --version 

Если Git установлен, то вы увидите номер версии, например, 2.35.1 .

Настраиваем Git

Теперь нужно ввести имя и адрес электронной почты, чтобы ваши действия в Git были подписаны, а ещё для привязки к GitHub.

Добавить имя (введите его внутри кавычек):

git config --global user.name "ваше имя" 

Добавить электронную почту (замените email@example.com на вашу почту):

git config --global user.email email@example.com 

Опция —global значит, что имя и почта будут использоваться для всех ваших действий в Git. Если вы хотите менять эту информацию для разных проектов, то вводите эти же команды, только без опции —global .

Регистрируемся на GitHub

GitHub (или Гитхаб) — веб-сервис на основе Git, который помогает совместно разрабатывать IT-проекты. На Гитхабе разработчики публикуют свой и редактируют чужой код, комментируют проекты и следят за новостями других пользователей.

Профиль на Гитхабе и все проекты в нём — ваше публичное портфолио разработчика, поэтому нужно завести профиль, если у вас его ещё нет.

  1. Зайдите на сайт https://github.com и нажмите кнопку Sign up.
  2. Введите имя пользователя (понадобится в дальнейшей работе), адрес электронной почты (такой же, как при настройке Git) и пароль.
  3. На почту придёт код активации — введите на сайте.
  4. Появится окно с выбором тарифного плана. Если вы пользуетесь Гитхабом для учёбы, то укажите, что профиль нужен только для вас и вы студент.
  5. Опросы и выбор интересов можно пропустить.

На этом всё — вы зарегистрировались и у вас есть собственный профиль.

Устанавливаем SSH-ключи

Чтобы получить доступ к проектам на GitHub со своего компьютера и выполнять команды без постоянного ввода пароля, нужно, чтобы сервер вас узнавал. Для этого используются SSH-ключи.

SSH — протокол для безопасного соединения между компьютерами.

SSH-ключ состоит из двух частей — открытого и закрытого ключа. Открытый ключ мы отправляем на сервер. Его можно не прятать от всех и не переживать, что кто-то его украдёт, потому что без закрытого ключа он бесполезен. А вот закрытый ключ — секретная часть, доступ к нему должен быть только у вас. Это важно.

Мы будем подключаться к GitHub по SSH. Это работает так:

  1. Вы отправляете какую-то информацию на GitHub, который знает ваш открытый ключ.
  2. GitHub по открытому ключу понимает, что вы это вы, и отправляет что-то в ответ.
  3. Только вы можете расшифровать этот ответ, потому что только у вас есть подходящий закрытый ключ.

А чтобы подключиться к GitHub с помощью SSH-ключа, сначала нужно его создать.

Проверяем SSH-ключи

Перед созданием нового SSH-ключа проверим, есть ли на компьютере другие ключи. Обычно они лежат в папке с названием .ssh — поэтому посмотрим, есть ли в ней что-то, с помощью команды в терминале:

ls -al ~/.ssh 

Если у вас уже есть SSH-ключ, то в списке будут файлы с именами вроде id_rsa.pub , id_ecdsa.pub или id_ed25519.pub . А если терминал ругается, что директории ~/.ssh не существует, значит, у вас нет SSH-ключей. Давайте это исправим.

Создаём новый SSH-ключ

Откройте терминал и скопируйте туда эту команду. Не забудьте подставить в кавычки почту, на которую вы регистрировались на Гитхабе.

ssh-keygen -t ed25519 -C "your_email@example.com" 

ed25519 — это алгоритм для генерации ключей. Если ваша система не поддерживает алгоритм ed25519 (и вы увидели ошибку), используйте немного другую команду с алгоритмом rsa :

ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 

Терминал спросит, куда сохранить ключ. Если не хотите менять имя файла, которое предлагает терминал, просто нажмите Enter.

> Generating public/private имя-ключа key pair. > Enter a file in which to save the key (/c/Users/ваш-профиль/.ssh/id_имя-ключа):*[Press enter]* 

Теперь нужно добавить пароль, которым будет зашифрован ваш ключ. Это стоит сделать, иначе в дальнейшем могут быть проблемы с настройкой, да и так просто безопаснее.

В результате создаётся новый SSH-ключ, привязанный к вашей электронной почте.

Создание ключа по шагам:

Добавляем SSH-ключ в ssh-agent

ssh-agent — программа для хранения и управления SSH-ключами. Давайте запустим её и добавим туда наш SSH-ключ. Запускаем командой eval «$(ssh-agent -s)» :

eval "$(ssh-agent -s)" 

Если в ответ терминал покажет надпись «Agent pid» и число — значит, всё ок, агент запущен.

Теперь добавим наш ключ командой.

ssh-add ~/.ssh/id_ed25519 

Если у вашего ключа другое имя, замените название id_ed25519 именем файла с ключом (это правило применяется и дальше в инструкции). Если вы устанавливали пароль на ключ, введите его два раза после ввода команды ssh-add (терминал подскажет, когда это сделать).

Теперь, если всё хорошо, появится надпись Identity added — значит, можно переходить к добавлению ключа на GitHub.

Копируем SSH-ключ

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

clip < ~/.ssh/id_ed25519.pub 

Команда clip может не сработать на вашем компьютере, тогда есть два способа узнать ключ — простой и сложный.

Сложный способ. Найдите скрытую папку .ssh , откройте файл id_ed25519.pub в текстовом редакторе и скопируйте его содержимое.

Простой способ. Введите команду ниже и ключ появится прямо в терминале — его нужно вручную скопировать в буфер обмена. Ключ начинается с ssh-ed22519 или ssh-rsa (или похожей строки) — поэтому копируйте строку прямо с самого начала.

~ cat ~/.ssh/id_ed25519.pub ssh-ed25519 AAAAC3NzaCZvnr4ax+Fr shklyar@htmlacademy.ru 

Не копируйте этот ключ из статьи — он уже не работает.

Добавляем SSH-ключ на GitHub

Это нужно сделать, чтобы GitHub вас узнавал.

Перейдите на страницу для работы с ключами в вашем профиле на GitHub и нажмите кнопку New SSH key.

В поле Title нужно добавить название нового ключа. Например, если вы используете Mac, вы можете назвать ключ MacBook Air, или, если ключ для курсов Академии, то Academy. А ключ, который вы скопировали на прошлом шаге, вставьте в поле Key.

Не копируйте ключ со скриншота — он уже не работает.

Теперь нажмите кнопку Add SSH key и, если потребуется, введите свой пароль от GitHub, чтобы подтвердить сохранение. Если всё сделано верно, новый ключ появится в списке на странице https://github.com/settings/keys.

Теперь мы можем поработать с проектом в репозитории.

Что такое репозиторий

Репозиторий — папка с файлами вашего проекта на сервере GitHub. Так вы можете работать с проектом откуда угодно, не переживая, что какие-то файлы потеряются — все данные останутся в репозитории.

Если над проектом работает несколько программистов, сначала создаётся мастер-репозиторий — это общий репозиторий с рабочей версией проекта. А каждый программист работает с форком — то есть полной копией мастер-репозитория. В форке вы можете безнаказанно менять код и не бояться что-то сломать в основной версии проекта.

Делаем форк мастер-репозитория

Заходим в нужный репозиторий и нажимаем на «вилку» с надписью fork.

Появится окно Create a new fork — проверьте, что он называется так, как вам нужно, и жмите кнопку Create fork. Через пару секунд всё готово.

Клонируем форк на компьютер — git clone

Клонировать форк — значит скачать его, чтобы работать с кодом на своём компьютере. Тут нам и пригодится SSH.

Открываем терминал и переходим в папку с будущим проектом — для этого используем команду cd your-project . Если вы хотите, чтобы проект лежал в папке device , введите

cd device 

Если такой папки на компьютере нет, то сначала введите md your-project , чтобы создать эту папку, а затем cd your-project . Когда перейдёте в папку, введите команду git clone для клонирования репозитория:

git clone git@github.com:your-nickname/your-project.git 

Замените your-nickname на ваше имя пользователя на GitHub, а your-project на название проекта. Проще всего их найти прямо наверху страницы репозитория.

Если вы правильно настроили SSH-ключи, Git скопирует репозиторий на ваш компьютер.

➜ device git clone git@github.com:academy-student/1173761-device-34.git Клонирование в «1173761-device-34»… remote: Enumerating objects: 15, done. remote: Counting objects: 100% (15/15), done. remote: Compressing objects: 100% (14/14), done. remote: Total 15 (delta 0), reused 15 (delta 0), pack-reused 0 Получение объектов: 100% (15/15), 145.07 КиБ | 900.00 КиБ/с, готово. 

Если вы видите ошибку Error: Permission denied (publickey) , скорее всего, вы ошиблись в настройке SSH-ключа. Вернитесь в этот раздел инструкции и повторите процесс настройки.

Кстати, если вы хотите, чтобы название папки с проектом у вас на компьютере отличалось от имени репозитория, можете дополнить команду клонирования, добавив в конце другое название:

git clone git@github.com:_your-nickname_/_your-project_.git folder_name 

Теперь на вашем компьютере в папке your_project или в той, название которой вы указали, находится полная копия репозитория c GitHub.

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

А если вы хотите исправить ошибку в коде или добавить что-то в проект, но не хотите сломать код в основной ветке, нужно создать новую ветку из master и работать из неё. Каждая ветка — что-то вроде второстепенной дороги, которая затем снова соединится с основной.

Создаём новую ветку — git branch

Откройте терминал и введите команду

git branch 

Она показывает список веток, с которыми мы работаем в проекте, и выделяет текущую. Если мы находимся в master , то создаём новую ветку командой

git checkout -b имя-новой-ветки. 
➜ 1173761-device-34 git:(master) git checkout -b task1 Переключено на новую ветку «task1» ➜ 1173761-device-34 git:(task1) 

Если текущая ветка не master , переключитесь на неё с помощью команды checkout . После git checkout надо указать название нужной ветки.

git checkout master 

Мы делаем это, чтобы новая ветка содержала свежую рабочую версию проекта. Если вы ошиблись в названии, например, допустили опечатку, вы можете изменить название ветки с помощью команды:

git branch -m старое-имя-ветки новое-имя-ветки. 

Сохраняем изменения — git add

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

Если вы хотите сохранить изменения не во всех файлах, для начала введите команду git status . Она покажет текущее состояние в вашей ветке, а именно список с названиями изменённых файлов, если они есть, и укажет на те, которые ожидают записи и сохранения (обычно они выделены красным цветом).

Чтобы сохранить все изменения разом, используйте команду

git add -A 

Чтобы сохранить изменения только отдельных файлов, укажите их имена вручную. Например, если вы изменили файл index.html , введите

git add index.html 

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

Делаем коммит — git commit

Сделать коммит — значит зафиксировать все сохранённые изменения и дать им название. Это делается с помощью команды commit

git commit -m "ваше сообщение" 

Текст сообщения должен быть лаконичным и вместе с этим сообщать о том, что делает коммит (внесённые изменения). Например,

  • Добавляет имя наставника в Readme
  • Вводит функцию сортировки изображений
  • Правит ошибку в поиске городов на карте

Отправляем изменения на GitHub — git push

Сохранённые изменения пока не видны коллегам, потому что находятся в нашем локальном репозитории. Нужно отправить коммиты на GitHub. Для этого введите команду

git push origin название-текущей-ветки 

Где origin означает репозиторий на компьютере, то есть ваш форк. Слово origin — часть команды, не меняйте это название на своё.

Создаём пулреквест

Пулреквест (или PR) — это предложение изменить код в репозитории. PR должен проверить администратор мастер-репозитория — это может быть коллега-разработчик, техлид или наставник на курсе.

Если к коду нет вопросов, пулреквест принимается. Если нужно что-то исправить — отклоняется, и придётся исправить код и снова пройти цепочку git add — git commit — git push . Если вы и дальше работаете в той же ветке, а пулреквест ещё не принят, все ваши изменения автоматически добавятся в пулреквест, созданный из этой ветки после команды git push origin название-текущей-ветки .

Чтобы создать пулреквест, зайдите на страницу вашего форка на GitHub. Вверху появилась плашка Compare & pull request, а ещё можно зайти на вкладку Pull Requests.

Нажмите на неё и окажетесь на странице открытия пулреквеста. Проверьте описание и нажмите Create pull request.

Готово, теперь ждём остаётся ждать одобрения пулреквеста или комментариев к нему.

Синхронизируем репозитории

Предположим, вы исправили код, руководитель или наставник одобрил ваши правки и принял пулреквест.

Теперь код в мастер-репозитории обновился, а в вашем форке нет, вы ведь не обновляли свою версию репозитория с тех пор, как клонировали её себе на компьютер. Приведём форк в актуальное состояние.

В локальном репозитории переключаемся на ветку master .

git checkout master 

Забираем изменения из ветки master мастер-репозитория

git pull git@github.com:academy-student/1173761-device-34.git master 

Отправляем изменения уже из своей ветки master в ваш форк на GitHub с помощью команды

git push origin master 

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

Словарик

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

Git — самая популярная система контроля версий. С Git можно работать через терминал.

Как работает терминал: мы вводим команду и получаем ответ компьютера — или всё получилось, или где-то ошибка, или нужно ввести что-то ещё.

GitHub (или Гитхаб) — веб-сервис, основанный на Git, который помогает совместно разрабатывать IT-проекты. На Гитхабе разработчики публикуют свой и редактируют чужой код, комментируют проекты и следят за новостями других пользователей.

SSH-ключ нужен, чтобы получить доступ к проектам на GitHub со своего компьютера и выполнять команды без постоянного ввода пароля, нужно, чтобы сервер нас узнавал.

ssh-agent — программа для хранения и управления SSH-ключами.

Репозиторий — папка с файлами вашего проекта на сервере GitHub или у вас на компьютере.

Мастер-репозиторий это общий для всей команды репозиторий с рабочей версией проекта.

Форк — полная копия мастер-репозитория, в которой вы можете безопасно работать.

Клонировать форк — скачать его командой git clone , чтобы работать с кодом на своём компьютере.

Пулреквест (или PR) — предложение изменить код в репозитории. PR должен проверить администратор мастер-репозитория — это может быть коллега-разработчик, техлид или наставник на курсе.

«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.

Читать дальше

5 частых ошибок при работе с Git

5 частых ошибок при работе с Git

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

  • 27 августа 2023

GitHub Desktop: обзор и первая настройка

GitHub Desktop: обзор и первая настройка

Самая короткая инструкция о том, как сохранить файлы в GitHub и ничего не сломать. И самое главное — никакой консоли, всё через окошки и с помощью мышки. Для этого используем GitHub Desktop.

Внимание! GitHub Desktop не работает на Windows 7×32, поэтому если у вас эта версия системы, обновитесь до Windows 10 или воспользуйтесь программой GitKraken.

В этой статье идёт рассказ о системах контроля версий. Если вы совсем ничего о них не знаете, прочитайте статьи «Словарь терминов для Git и GitHub» и «Введение в системы контроля версий», чтобы понять терминологию и разобраться, зачем мы вообще это делаем.

  • 7 августа 2023

Как склеить коммиты и зачем это нужно

Как склеить коммиты и зачем это нужно

Когда вы открываете пулреквест и ваш код смотрят и комментируют другие, бывает нужно что-то исправить. Обычно такие изменения мы комментируем сообщением вроде «Увеличил шрифт на 2px » или «Поменял оттенок фона в шапке». Такие маленькие изменения интересны, только пока они в пулреквесте. Ревьювер (человек, который смотрит ваш код), может легко узнать, что и когда вы изменили, а не читать весь diff заново, а вы можете легко откатить коммит, если он не нужен. Но когда приходит время вливать пулреквест, эти маленькие коммиты теряют свою ценность. Поэтому лучше их склеить в один.

  • 14 июня 2023

Основные команды для работы с Git

Основные команды для работы с Git

Работа с Git через терминал — это обязательная часть практики фронтендера. Однако для начинающих разработчиков этот инструмент может показаться сложным. Чтобы вам было проще учиться, мы собрали основные команды для работы с Git.

☝ В некоторых командах мы будем писать URL-адрес удалённого репозитория и название проекта в квадратных скобках, вот так — [ссылка на удалённый репозиторий] . Мы делаем это только для наглядности. Вам квадратные скобки ставить не нужно.

  • 22 февраля 2023

Как бесплатно залить сайт на GitHub Pages

Как бесплатно залить сайт на GitHub Pages

Допустим, вы сделали какой-то проект, например, собрали себе портфолио по шаблону, и теперь хотите выложить его в интернет. Если вы использовали только HTML и CSS, то необязательно платить деньги, чтобы загрузить сайт куда-то. Вы можете бесплатно выложить сайт на сервис GitHub Pages. Всё, что нужно — аккаунт на Гитхабе.

  • 29 ноября 2022

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

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

Создание нового аккаунта на GitHub состоит всего из 10 шагов — и вся регистрация занимает меньше пяти минут.

�� Обратите внимания, что интерфейс Гитхаба регулярно меняется, так что внешне он может отличаться, когда вы читаете эту статью.

Начало регистрации. Так выглядит главный экран Гитхаба, когда вы не зарегистрированы. Главное, что вам нужно заметить — большое поле для ввода почты и зелёная кнопка. Вводите свой адрес и переходите на следующий шаг.

Ввод почты. На следующем шаге начинается регистрация. Подтвердите свою почту с прошлого шага и нажмите Continue (Продолжить).

Пароль. Придумайте сложный пароль, чтобы его никто не взломал. Например, Гитхаб просит, чтобы в пароле было не меньше 15 символов или 8 символов, но тогда должны быть и латинские буквы, и цифры.

Имя профиля. Теперь выберите имя вашего профиля — оно будет использоваться в интерфейсе, в коммитах и комментариях. То есть именно так вас будет видеть любой пользователь Гитхаба. Для разработчика Гитхаб вместо визитки, так что выбирайте что-нибудь приличное, лучше, если ник будет совпадать с вашими никнеймами на других сайтах.

Если имя недоступно, Гитхаб вам об этом скажет. А если доступно — жмите Continue.

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

Капча, чтобы проверить, что вы не робот. Нам при регистрации пришлось два раза выбрать спиральную галактику — не сильно сложно. А если вы робот — не причиняйте вред человеку своим действием или бездействием.

Подтверждение почты. После капчи вам придёт письмо с кодом на почту. Введите его на следующей странице.

Вот здесь. Главное — не ошибайтесь.

Общая информация о вас и вашей команде. Если вы регистрируете аккаунт для себя, выбирайте Just me. Второй пункт — студент вы или учитель. Выбирайте «Студент», если вы не учитель.

Интересы. Дальше Гитхаб спросит вас об интересах — то есть о том, зачем вы регистрируете аккаунт. Из вариантов:

  • Совместная разработка и код ревью.
  • Автоматизация. CI/CD, API и другие админские вещи.
  • Безопасность. Двухфакторная аутентификация, ревью, сканирование кода и списки зависимостей.
  • Приложения. Выбирайте, если будете использовать GitHub Mobile, CLI, Desktop.
  • Управление проектами. Проекты, метки, ишьи, вики и другие управленческие дела.
  • Управление командами. Организации, приглашения, роли, домены.
  • Сообщество. Выбирайте, если Гитхаб интересен вам как соцсеть.

Вы можете выбрать несколько пунктов или пропустить и не указывать ничего, для этого пролистайте страницу вниз для кнопки Skip customization.

Выбор тарифа. На выбор бесплатный тариф или платный GitHub Pro. Практика показывает, что для большинства личных проектов хватит бесплатного тарифа. В сентябре 2022 в него входили:

  • Безлимитное количество репозиториев.
  • 2000 минут CI/CD в месяц.
  • 500 мегабайт места в хранилище пакетов.
  • Поддержка сообщества.

Выбор тоже можно пропустить, тогда у вас будет бесплатный тариф.

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

  • 28 сентября 2022

Работа с Git в Visual Studio Code

Работа с Git в Visual Studio Code

Если вы вёрстаете сайты или пишете код в редакторе Visual Studio Code, то Git за пять минут настраивается прямо внутри редактора. Не нужно запоминать команды для консоли, не нужно тыкать в лишние приложения.

Следуйте инструкции и всё получится.

  • 16 сентября 2022

Markdown за 5 минут

Markdown за 5 минут

Маркдаун, он же markdown — удобный и быстрый способ разметки текста. Маркдаун используют, если недоступен HTML, а текст нужно сделать читаемым и хотя бы немного размеченным (заголовки, списки, картинки, ссылки).

Главный пример использования маркдауна, с которым мы часто сталкиваемся — файлы readme.md , которые есть в каждом репозитории на Гитхабе. md в имени файла это как раз сокращение от markdown.

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

Версии маркдауна отличаются, поэтому перепроверьте, какую вы используете.

  • 5 октября 2021

Шпаргалка по Git. Решение основных проблем

Шпаргалка по Git. Решение основных проблем

Поговорим о решении проблем с Git.

  • 11 декабря 2020

Полезные команды для работы с Git

Полезные команды для работы с Git

Работа с Git через терминал — это обязательная часть практики каждого современного фронтенд-специалиста. Однако, для начинающих это может показаться сложным. Чтобы упростить процесс обучения, мы собрали для вас все самые необходимые команды, которые пригодятся в работе с Git на первое время.

  • 1 января 2020

Добавление локально размещенного кода в GitHub

If your code is stored locally on your computer and is tracked by Git or not tracked by any version control system (VCS), you can import the code to GitHub using GitHub CLI or Git commands.

Platform navigation

About adding existing source code to GitHub

If you have source code stored locally on your computer that is tracked by Git or not tracked by any version control system (VCS), you can add the code to GitHub by typing commands in a terminal. You can do this by typing Git commands directly, or by using GitHub CLI.

GitHub CLI is an open source tool for using GitHub from your computer's command line. GitHub CLI can simplify the process of adding an existing project to GitHub using the command line. To learn more about GitHub CLI, see "About GitHub CLI."

Note: If you're most comfortable with a point-and-click user interface, consider adding your project with GitHub Desktop instead. For more information, see "Adding a repository from your local computer to GitHub Desktop."

If your source code is tracked by a different VCS, such as Mercurial, Subversion, or Team Foundation Version Control, you must convert the repository to Git before you can add the project to GitHub.

  • "Importing a Subversion repository"
  • "Importing a Mercurial repository"
  • "Importing a Team Foundation Version Control repository"

Warning: Never git add , commit , or push sensitive information to a remote repository. Sensitive information can include, but is not limited to:

  • Passwords
  • SSH keys
  • AWS access keys
  • API keys
  • Credit card numbers
  • PIN numbers

Initializing a Git repository

If your locally-hosted code isn't tracked by any VCS, the first step is to initialize a Git repository. If your project is already tracked by Git, skip to "Importing a Git repository with the command line."

  1. Open Terminal Terminal Git Bash .
  2. Navigate to the root directory of your project.
  3. Initialize the local directory as a Git repository. By default, the initial branch is called main . If you’re using Git 2.28.0 or a later version, you can set the name of the default branch using -b .

git init -b main 

If you’re using Git 2.27.1 or an earlier version, you can set the name of the default branch using git symbolic-ref .

git init && git symbolic-ref HEAD refs/heads/main 
$ git add . # Adds the files in the local repository and stages them for commit. To unstage a file, use 'git reset HEAD YOUR-FILE'. 
$ git commit -m "First commit" # Commits the tracked changes and prepares them to be pushed to a remote repository. To remove this commit and modify the file, use 'git reset --soft HEAD~1' and commit and add the file again. 

Importing a Git repository with the command line

After you've initialized a Git repository, you can push the repository to GitHub, using either GitHub CLI or Git.

  • "Adding a local repository to GitHub with GitHub CLI"
  • "Adding a local repository to GitHub using Git"

Adding a local repository to GitHub with GitHub CLI

  1. To create a repository for your project on GitHub, use the gh repo create subcommand. When prompted, select Push an existing local repository to GitHub and enter the desired name for your repository. If you want your project to belong to an organization instead of your user account, specify the organization name and project name with organization-name/project-name .
  2. Follow the interactive prompts. To add the remote and push the repository, confirm yes when asked to add the remote and push the commits to the current branch.
  3. Alternatively, to skip all the prompts, supply the path to the repository with the --source flag and pass a visibility flag ( --public , --private , or --internal ). For example, gh repo create --source=. --public . Specify a remote with the --remote flag. To push your commits, pass the --push flag. For more information about possible arguments, see the GitHub CLI manual.

Adding a local repository to GitHub using Git

  1. Create a new repository on GitHub.com. To avoid errors, do not initialize the new repository with README, license, or gitignore files. You can add these files after your project has been pushed to GitHub. For more information, see "Creating a new repository."
  2. At the top of your repository on GitHub.com's Quick Setup page, click

Screenshot of the

to copy the remote repository URL.

git remote add origin REMOTE-URL 
git remote -v 
git push -u origin main 
  1. Create a new repository on GitHub.com. To avoid errors, do not initialize the new repository with README, license, or gitignore files. You can add these files after your project has been pushed to GitHub. For more information, see "Creating a new repository."
  2. At the top of your repository on GitHub.com's Quick Setup page, click

Screenshot of the

to copy the remote repository URL.

git remote add origin REMOTE-URL 
git remote -v 
git push origin main 
  1. Create a new repository on GitHub.com. To avoid errors, do not initialize the new repository with README, license, or gitignore files. You can add these files after your project has been pushed to GitHub. For more information, see "Creating a new repository."
  2. At the top of your repository on GitHub.com's Quick Setup page, click

Screenshot of the

to copy the remote repository URL.

git remote add origin REMOTE-URL 
git remote -v 
git push origin main 

Further reading

  • "Adding a file to a repository"
  • "Troubleshooting the 2 GB push limit"

Как создать репозиторий на GitHub через командную строку?

В папке с проектом создаю локальный репозиторий ( git init ), выполняю весь необходимый минимум ( git add . , git commit -m "Описание коммита" ), и пробую выложить его в свой аккаунт на GitHub:

$ git remote add git_prj https://github.com/Gooddjamp/git_prj.git $ git push -u git_prj master 

А возвращается ошибка:

remote: Repository not found. fatal: repository 'https: // github.com / Gooddjamp/git_prj.git/' not found

Помогите решить проблему, как выложить свой проект на GitHub.
Отслеживать
4,286 14 14 золотых знаков 42 42 серебряных знака 92 92 бронзовых знака
задан 19 мар 2016 в 15:27
181 1 1 золотой знак 1 1 серебряный знак 5 5 бронзовых знаков
Создай там, склонируй себе в папку, добавить новый файл, закомить и отправь в гитхаб
19 мар 2016 в 15:39

Так все работает: создал репозиторий в акаунте на github.com, клонировал себе на пк, добавил файлы проэкта, закомитил, отправил на github, все ок. НО хотелось бы создать репозиторий удаленно, перенести свой локальный репозиторий на github, а не получаеться (((

19 мар 2016 в 21:12
@Gooddjamp: в таком случае измените формулировку вопроса, так как Вашего НО там нет.
19 мар 2016 в 22:22
edem, Вы правы, формулировка была не точна. Спасибо
20 мар 2016 в 10:17

Тут пишут, так : . $ git remote add origin https://github.com/USER/demo.git . $ git push -u origin master Похоже, разница в origin

20 мар 2016 в 10:28

5 ответов 5

Сортировка: Сброс на вариант по умолчанию

Linux / OS X

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

curl -u 'USER_NAME' https://api.github.com/user/repos -d'' 

Вводим пароль от учетной записи:

Enter host password for user 'USER_NAME':

Репозиторий demo создан.

введите сюда описание изображения

Теперь выгружаем проект.

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

Windows

Вариант 1:

Устанавливаем утилиту cURL и перезагружаемся. Дальше последовательность идентична Linux.

Вариант 2 (Спасибо @PinkTux):

Cкачиваем архив wget, разархивируем в любое место на диске и прописываем путь в переменной PATH . Открываем командную строку и пишем следующее:

wget https://api.github.com/user/repos --user=%USER_NAME --password=%PASSWORD --auth-no-challenge --post-data="" 

Обратите внимание на экранирование кавычек (обратный слэш перед кавычкой) в --post-data . Не смотря на отсутствие необходимости перезагрузки, все же способ имеет и недостаток - необходимо явно в строке указывать пароль.

Таким способом можно создавать репозитории с различными параметрами.Вот туд приведен полный перечень параметров. Например для создания приватного репозитория (если у вас есть конечно такая привилегия) нужно подставить в первую строку после -d :

Отслеживать
ответ дан 20 мар 2016 в 12:19
Sanek Zhitnik Sanek Zhitnik
2,212 2 2 золотых знака 17 17 серебряных знаков 28 28 бронзовых знаков
Плюс за true unix way создания репозитория ))
23 мар 2016 в 7:07

А почему . /demo.git в git remote . , если в curl . дали имя <"name":"demo">(т.е. без .git)? По моему (пока еще начальному) опыту на github создается репозиторий в точности с указанным именем. Вообще, надежней перед git remote . зайти на github в только что созданный проект и скопировать URL

25 мая 2016 в 13:46

@avp, вы совершенно правы и именно так я и поступил – взял код, предлагаемый GitHub'ом. Ваш вопрос меня заинтересовал, и я нашел на него ответ на EngSO. Если я правильно понял .git в url используется для обращения к чистым репозиториям. Попробовал обратится без .git – коммит улетел на удаленный репозиторий . Спасибо за Ваш комментарий.

25 мая 2016 в 15:23

"Устанавливаем утилиту cURL и перезагружаемся" -- а перезагружаться зачем? Впрочем, можно и так, уж wget никакой перезагрузки не потребует, только один его exe-шник положить в PATH и всё: wget.exe -O NUL --auth-no-challenge --user=USER --password=PASSWORD "https://api.github.com/user/repos" --post-data='' (насчёт NUL не уверен, не помню как там в windows "в никуда" отправить, чтобы он HTTP-ответ в файле не сохранял)

28 окт 2016 в 21:11
@PinkTux о, спасибо спасибо. попозже проверю и добавлю.
28 окт 2016 в 21:38

1. Создание удалённого репозитория при помощи hub

hub — консольное приложение, упрощающее введение команд git и позволяющее производить некоторые недоступные для git действия в удалённых репозиториях из терминала. Так, при помощи hub возможно создание нового GitHub репозитория без обращений к веб-интерфейсу, для этого используется команда

Необязательные параметры команды:

  • -d — описание репозитория, на сайте GitHub располагается под именами пользователя и репозитория;
  • -h — ссылка на сайт, соответствующий репозиторию, в веб-интерфейсе GitHub находится рядом с описанием;
  • -p — сделать репозиторий приватным; параметр доступен только если у Вас платный GitHub аккаунт.

Описание и ссылка

2. Демонстрация

Создаём, используя Git Bash, репозиторий с именем KristinitaTest.github.io в Windows.

SashaChernykh@DESKTOP-0G54NVG MINGW32 /e $ mkdir KristinitaTest.github.io # Имя папки станет и именем Вашего удалённого репозитория. SashaChernykh@DESKTOP-0G54NVG MINGW32 /e $ cd KristinitaTest.github.io SashaChernykh@DESKTOP-0G54NVG MINGW32 /e/KristinitaTest.github.io $ touch README.MD SashaChernykh@DESKTOP-0G54NVG MINGW32 /e/KristinitaTest.github.io $ start README.MD # Пишем «Repository for test GitHub features and demonstrations.» в файл README.MD. SashaChernykh@DESKTOP-0G54NVG MINGW32 /e/KristinitaTest.github.io $ hub init Initialized empty Git repository in E:/KristinitaTest.github.io/.git/ SashaChernykh@DESKTOP-0G54NVG MINGW32 /e/KristinitaTest.github.io (master) $ hub add . && git commit -m "Repository for Sasha tests" [master (root-commit) b56f811] Repository for Sasha tests 1 file changed, 1 insertion(+) create mode 100644 README.MD SashaChernykh@DESKTOP-0G54NVG MINGW32 /e/KristinitaTest.github.io (master) $ hub create -d "Create test repository" -h "Kristinita.ru" Updating origin created repository: Kristinita/KristinitaTest.github.io # Протокол «http://» будет добавлен автоматически в имя сайта. SashaChernykh@DESKTOP-0G54NVG MINGW32 /e/KristinitaTest.github.io (master) $ hub push -u origin master Counting objects: 3, done. Delta compression using up to 4 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 296 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To https://github.com/Kristinita/KristinitaTest.github.io.git * [new branch] master -> master 

Новый репозиторий успешно создан.

Hub create

3. Примечания

  1. В ответе подразумевается, что Вы уже связаны с аккаунтом на GitHub, и Вам не придётся при каждом push вводить логин/пароль.
  2. Лично протестировано только на Windows 10, но так как hub — кроссплатформенная утилита, решение должно работать и в других операционных системах.

Как загрузить существующий проект на GitHub

GitHub — это облачный инструмент управления Git. Git —распределенная система управления версиями; это значит, что она хранит весь репозиторий и историю там, где вы их поместите. GitHub часто используется в бизнесе или в процессе разработки ПО в качестве управляемого хостинга для резервного копирования репозиториев. Однако GitHub также позволяет вам общаться с коллегами, друзьями, организациями и т.д.

В этом руководстве вы узнаете, как поместить проект, над которым вы работаете, на GitHub.

Требования

Чтобы инициализировать репозиторий и отправить его на GitHub, вам потребуется:

  • Бесплатная учетная запись GitHub
  • Установка git на вашем локальном компьютере. Инструкции вы найдете в мануале Разработка проектов с открытым исходным кодом: начало работы с Git

1: Создание репозитория GitHub

Войдите в GitHub и создайте новый пустой репозиторий. Инициализировать README или нет, решать вам. На самом деле это не имеет значения, потому что мы все равно переопределим все в этом репозитории.

Примечание: В этом руководстве мы используем условное имя пользователя GitHub (sammy) и репозитория (my-new-project). Все эти фиктивные данные нужно заменить своими данными.

2: Инициализация Git в папке проекта

Перейдите в папку, которую хотите добавить в репозиторий, и выполните в своем терминале следующие команды.

Инициализация репозитория Git

Убедитесь, что вы находитесь в корневом каталоге проекта, который хотите отправить на GitHub, и запустите:

Примечание: Если у вас уже есть инициализированный проект, можете пропустить эту команду.

Этот шаг создает в папке вашего проекта скрытый каталог .git. Система git распознает его и использует для хранения всех метаданных и истории версий для данного проекта.

Добавление файлов в индекс Git

Следующая команда укажет git, какие файлы включать в коммит. Аргумент -A (то есть –all) означает «включить все».

Коммит добавленных файлов

git commit -m 'Added my project'

Команда git commit создает новый коммит со всеми добавленными файлами. Параметр -m (или –message) задает сообщение, которое будет включено в коммит в качестве объяснения для будущей работы. В этом случае мы ввели простое сообщение ‘Added my project’.

Добавление нового удаленного репозитория

Примечание: Помните, что вам нужно заменить имя пользователя и репозитория.

git remote add origin git@github.com:sammy/my-new-project.git

В git «remote» относится к удаленной версии того же репозитория, который обычно находится где-то на сервере (в данном случае на GitHub). «origin» — это стандартное имя, которое git по умолчанию присваивает удаленному серверу (таких у вас может быть несколько). Команда git remote add origin добавит URL-адрес удаленного сервера по умолчанию для этого репозитория.

Загрузка на GitHub

git push -u -f origin main

Флаг -u (или –set-upstream) устанавливает удаленный репозиторий origin в качестве апстрим-ссылки. Это позволяет позже выполнять команды git push и git pull без указания origin.

Флаг -f (или –force) автоматически перезапишет все в удаленном каталоге. Здесь мы используем его, чтобы перезаписать стандартный файл README, автоматически инициализированный GitHub.

Примечание: Если вы не включили README по умолчанию при создании проекта на GitHub, флаг -f вам не нужен, его можно удалить из команды.

Итоги

В результате весь процесс состоит из следующих команд:

git init
git add -A
git commit -m 'Added my project'
git remote add origin git@github.com:sammy/my-new-project.git
git push -u -f origin main

Заключение

Мы успешно настроили удаленное отслеживание изменений кода в GitHub!

Читайте также:

  • Краткий справочник по Git
  • Создание pull-запроса на GitHub

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *