Как загрузить существующий проект на 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
Импорт внешнего репозитория Git с помощью командной строки
Если репозиторий Git хранится в службе размещения кода, недоступной из общедоступного Интернета, можно импортировать репозиторий с помощью Git в командной строке.
Before you start, make sure you know:
- Your GitHub username
- The clone URL for the external repository, such as https://external-host.com/user/repo.git or git://external-host.com/user/repo.git (perhaps with a user@ in front of the external-host.com domain name)
For purposes of demonstration, we’ll use:
- An external account named extuser
- An external Git host named https://external-host.com
- A GitHub personal account named ghuser
- A repository on GitHub.com named repo.git
- Create a new repository on GitHub. You’ll import your external Git repository to this new repository.
- On the command line, make a «bare» clone of the external repository using the external clone URL. This creates a full copy of the data, but without a working directory for editing files, and ensures a clean, fresh export of all the old data.
$ git clone --bare https://external-host.com/EXTUSER/REPO.git # Makes a bare clone of the external repository in a local directory
$ cd REPO.git $ git push --mirror https://github.com/USER/REPO.git # Pushes the mirror to the new repository on GitHub.com
cd .. rm -rf REPO.git
If the repository you are importing contains large files, you may run into a warning or error. For more information on large files and how to manage them, see «About large files on GitHub.»
Further reading
Как создать репозиторий на 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,306 14 14 золотых знаков 43 43 серебряных знака 93 93 бронзовых знака
задан 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"name":"demo">
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
Новый репозиторий успешно создан.

3. Примечания
- В ответе подразумевается, что Вы уже связаны с аккаунтом на GitHub, и Вам не придётся при каждом push вводить логин/пароль.
- Лично протестировано только на Windows 10, но так как hub — кроссплатформенная утилита, решение должно работать и в других операционных системах.
Добавление локально размещенного кода в 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.»
- Open Terminal Terminal Git Bash .
- Navigate to the root directory of your project.
- 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
- 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 .
- 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.
- 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
Before you can add your local repository to GitHub using Git, you must authenticate to GitHub on the command line. For more information, see «About authentication to GitHub.»
- 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.»
- At the top of your repository on GitHub.com’s Quick Setup page, click

to copy the remote repository URL.
git remote add origin REMOTE-URL
git remote -v
git push -u origin main
- 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.»
- At the top of your repository on GitHub.com’s Quick Setup page, click

to copy the remote repository URL.
git remote add origin REMOTE-URL
git remote -v
git push origin main
- 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.»
- At the top of your repository on GitHub.com’s Quick Setup page, click

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»