Простое создание git репозитория на OneDrive

Всем привет.

В качестве первой статьи решил написать шпаргалку себе на будущее в большей степени, но может она пригодиться еще кому-нибудь.

Наверняка специалисты по git все и так прекрасно знают, но ведь на Хабре ищут решений своих вопросов и много нубов начинающих, как я сам, кто больше читатель, а не писатель.

Введение


Все началось с того как я начал думать… И думал я о том, как бы интересно организовать свои домашние самоделки надежно, чтоб не потерять в случае чего, и желательно модно правильно с применением git и тому подобное.

Конечно многие скажут GitHub. Да, конечно хорошее решение, но… Есть и но у такого решения.

Не все самоделки хочется выкладывать в открытый доступ. Что-то просто стыдно чтоб другие увидели, что-то не хочется показывать, по крайней мере некоторое время. А закрытые репозитории на GitHub доступны только на платном аккаунте.

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

И тогда обратил я внимание на свой ноутбук для таких вот занятий, а там совершенно случайно оказалась лицензионная windows 8.1, в которой вечно маячил и попадался мне под руку такой элемент как OneDrive.

Кто не знает, это облачный диск от Microsoft для обладателей учетной записи.

А почему бы не организовать git репозиторий на данном облаке.

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

Забегая вперед скажу, что в адресации git нужны ссылки, но никак не пути windows, с указанием диска и т.д.

Многие предлагали установку дополнительно консольной утилиты curl или ей подобных, но очень не хотелось заниматься этим и обойтись стандартными средствами windows и git клиента под windows.

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

Мне доступно 5 ГБ свободного места, не очень много, но для моих нужд — более чем. Так зачем пропадать добру?

Если кому покажется слишком мало, всегда можно докупить еще места.
Ну это я отвлекся от темы. И так приступим к собственно организации репозитория.

Допущения


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

Зайдем на OneDrive и создадим каталог git, в котором и будем размещать все свои репозитории.
Допустим, нашего пользователя зовут User.

Тогда папка для синхронизации OneDrive будет располагаться по адресу: C:\Users\User\SkyDrive\.

В ней уже должен быть, созданный нами, каталог git.

Ну и для примера организовывать будем проект project1.

Сразу в нем создадим файл .gitignore для исключений, что не нужно коммитить.

Так как я пишу на python, мой файл содержит следующее:

*.gitignore
*.log
*.pyo
*.pyc
__pycache__/

В нынешнем, которым я пользуюсь, python 3.5 скомпилированные файлы pyo и pyc уже складываются в папку __pycache__/, поэтому при наличии данной строки их можно не писать, но когда я начинал с python 3.3 — они лежали рядом с файлами исходного кода, поэтому остались. Не мешают и хорошо.

Для проектов на django к вышеперечисленному еще добавляются следующие строки:

db.sqlite3
staticfiles/

Конечно при запуске django на каком-либо хостинге, база данных будет посерьезней, например postgres, или что предоставляет хостинг. Но во время разработки для отладки можно использовать старый добрый sqlite.

в каталоге проекта открываем правой кнопкой мыши контекстное меню и выбираем там пункт «git bash here».

Думаю при установке git клиента вы выбрали опцию интеграции в проводник.

Это важно для использования в пути к репозиторию ~ (тильды). Так как стандартная консоль windows не умеет работать с данным символом, а в bash он означает домашний каталог, а собственно интересующий нас путь: C:\Users\User\.

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

Весь алгоритм действий


В консоли git bash пишем следующие инструкции.

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

git init
git add --all
git commit -m "init"
git init --bare ~/SkyDrive/git/project1.git
git remote add OneDrive ~/SkyDrive/git/project1.git
git push -u OneDrive

Разберем детально каждый шаг


1. git init
Просто создаем пустой локальный git репозиторий проекта в самой папке проекта.

2. git add --all
Данное действие призвано добавить для индексирования все файлы в каталоге и его подкаталогах, исключая конечно содержимое .gitignore файла.

Также можно использовать: git add

Но она добавляет все файлы из каталога, не включая подкаталоги.

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

3. git commit -m "init"

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

4. git init --bare ~/SkyDrive/git/project1.git

А вот и первое обращение к удаленному репозиторию. Здесь мы создаем репозиторий для данного проекта.

Важно! Ключ --bare обязателен. Он указывает создать master ветку в данном репозитории. Хоть она пока и пуста.

.git в конце пути после имени проекта не обязательно, но, как я понимаю, это хорошо сложившаяся традиция. Как по мне вполне удобная, не вижу смысла ее изменять.

5. git remote add OneDrive ~/SkyDrive/git/project1.git

А тут мы присваиваем имя OneDrive для нашей ссылки на удаленный репозиторий.

6. git push -u OneDrive

И последним шагом мы заливаем содержимое нашего проекта в master ветку удаленного репозитория.

Такая запись нужна только в первый раз, для заполнения master ветки. В дальнейшем можно пользоваться стандартным: git push.

Да и режим git bash более не обязателен. Дальнейшая работа с git в данном проекте возможна и из обычной консоли windows.

Ну вот и все. Очень простой способ, но зато позволяет приобщиться к миру настоящих разработчиков и почувствовать себя почти профи.
Метки:
git, onedrive

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.