Как загрузить существующий проект на GitHub
GitHub — это облачный инструмент управления Git. Git —распределенная система управления версиями; это значит, что она хранит весь репозиторий и историю там, где вы их поместите. GitHub часто используется в бизнесе или в процессе разработки ПО в качестве управляемого хостинга для резервного копирования репозиториев. Однако GitHub также позволяет вам общаться с коллегами, друзьями, организациями и т.д.
В этом руководстве вы узнаете, как поместить проект, над которым вы работаете, на GitHub.
Требования
Чтобы инициализировать репозиторий и отправить его на GitHub, вам потребуется:
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 вам не нужен, его можно удалить из команды.
Как выложить свой проект на GitHub.com
Если вы, как и я, решили освоить 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 и клонируем удаленный репозиторий на локальную машину:
— где USER — ваше имя на гитхабе. Ссылку также можно скопировать со страницы репозитория в поле «HTTPS clone URL».

Появится каталог /demo/ который создал git. Он должен быть пустой, кроме подкаталога «.git» — это служебный каталог, и его трогать не нужно.
Теперь копируем в каталог /demo/ содержимое нашего проекта, которое мы сохранили в /demo-temp/ . Всё, что мы сюда скопируем, будет вылождено на GitHub, поэтому желательно удалить все ненужные файлы. Если какие-то служебные файлы требуются для проекта, то их можно указать в файле .gitignore.
Это добавит все файлы для отслеживания git’ом. Проверить состояние (до и после add) можно командой
Теперь делаем коммит (сообщение любое):
Пока мы работаем с локальным репозиторием. То есть нужно настроить его так, чтобы он оказался в том виде, который отправится на гитхаб.
Для удобства можно сразу выставить метку версии (опять же любой вариант):
Теперь можно отправить изменения на гитхаб.
Git может выдать сообщение, что команда push не настроена по-умолчанию. Пока не обращайте внимания на это сообщение. Нужно будет внести изменения в конфигурацию позже.
Git потребует ввести логин и пароль для GitHub.com. Учитывайте, что пароль полностью скрывается, поэтому не будет видно даже «звездочек». После ввода нажимаем Enter и git выполнит обновление удаленного репозитория.
Теперь нужно обновить метки на удаленном репозитории (если вы их задали).
Здесь также нужно будет ввести логин и пароль.
Всё, синхронизация выполнена! Временный каталог /demo-temp/ можно удалить или сохранить как старый резервный вариант.
Если мы зайдем на страницу репозитория на гитхабе, то увидим свой проект.
Для настройки push, если требуется, пишем:
Второй способ
Наш проект может размещатся в любом каталоге. Для него нужно инициализировать git. Это стандартная процедура:
Теперь для проекта git работает и его можно использовать по своему усмотрению: добавлять версии, смотреть логи, делать ветки и т.п.
Для связи с GitHub’ом следует указать удаленный репозиторий:
Этот код указывает адрес удаленного и отправляет все изменения на гитхабовский сервер. Если мы зайдем на страницу репозитория на гитхабе, то также увидим свой проект.
How can I upload my project to Github when it is over 100 MB?
I’m using the GoogleMaps pod which is 130MB, so github won’t let me upload my project. What is the workaround for this?

![]()
5 Answers 5
I suggest excluding Pods directory (by adding it to your .gitignore file) in your git repository. Pods can be recreated with your podfile, so you don’t have to store them in your repository.
Other approach, e.g. when you have framework you precompiled yourself and don’t want your other team members to need compile it again, is to use git lfs: https://git-lfs.github.com
![]()
If the Google Maps SDK dependency is making your project size very large, best to add it to your .gitignore rather than keep a copy of the whole thing, whether it be using LFS or whatever other mechanism.
As your project is using Swift, when Xcode supports the Swift Package Manager (SPM), you will be able to specify the Maps SDK as a dependency in your Package.swift on a tag or branch basis. And then swift build (or the Xcode equivalent) will manage dependency cloning, updates and builds of these type of project dependencies.
As a temporary solution you can use a bunch of scripts like described in the post here:
- Split file
- Add file to .gitignore
- Combine file from chunks on the build step
Files on GitHub cannot be more than 100MB each with a max total of 1GB unless you’re using LFS — https://help.github.com/articles/what-is-my-disk-quota/
It does not appear to be correct to push the entire directory up to GitHub. Review the documentation or check out examples like this GoogleDirections binding that includes a the necessary json.
Per Github’s disk quota page, there is only a strict limit of 100MB on individual files. There is a recommended 1GB repository limit as well.
If you are working with a very large file, I recommend reading this page here, which will detail what you should do. Notably, they recommend Git Large File Storage if you absolutely need to push a large file.
Tip: If you regularly push large files to GitHub, consider introducing Git Large File Storage (Git LFS) as part of your workflow. Git LFS works well with the GitHub Flow and can be used with any large file, regardless of its type. For more information, see «Versioning large files.»
However, in this case it really looks like you should be either creating a submodule or flat out using .gitignore to remove the framework from the repository.
Как сунуть уже готовый проект в репозиторий?

В первый раз может потребоваться указать Гиту имя пользователя (лучше латинницей) и E-mail.
Так же, если есть файлы, которые не хочешь отправлять в публичный репозиторий (временные файлы, файлы сборки, какие-то конфиги с паролями от баз данных) — загугли про файл .gitignore, создай его в корне проекта и добавь в него пути или шаблоны имён файлов.
А дальше, вроде можно и так:
1. Создать на GitHub репозиторий
Кнопочка видна после авторизованного входа на GitHub
Достаточно придумать название латинницей, можно разделять слова минусом
1. в папке с проектом инициализировать гит-репозиторий
git init
2. связать с репозиторием на ГитХабе
git remote add origin адрес_репозитория_на_гитхабе
3. Добавить все файлы в отслеживание
git add —all
4. Создать коммит (правку)
5. Дать команду на пуш в репозиторий на ГитХабе
git push origin master