Удаленные серверы Git, как правило, накладывают ограничения на размер репозитория. И со временем возникает необходимость очистки истории от коммитов с большими файлами.
Создание удаленного репозитория из папки проекта с помощью Git
Загрузка и установка клиента Git
Предпочитаю portable версии программ, это касается и клиента Git. Его можно найти на просторах, или взять здесь. Пароль к архиву 12345. Нужно просто скачать и распаковать архив в каталог диска по желанию.
Я держу portable версии программ на d:/admin/prog и при загрузке новых обновляю этот каталог на «покете», так что самое нужное всегда с собой.
Распаковываем, например, в d:/admin/Prog/GitPortable
Смотрите, чтобы не получилось d:/admin/Prog/GitPortable/GitPortable/ 🙂
В итоге, если все сделано аккуратно, версия программы с графическим интерфейсом расположится в каталоге D:\admin\Prog\GitPortable\GitPortable.exe
А лучший в мире вариант с управлением из командной строки — в D:\admin\Prog\GitPortable\App\Git\git-bash.exe и можно просто сделать ярлык на запуск на рабочем столе.
Выделить файл git-bash.exe в проводнике и с нажатой правой кнопкой мыши потащить на рабочий стол и бросить. Появится контекстное меню — выбрать Создать ярлык.
Однако…
То есть, текущим в bash консоли Git оказался каталог самой программы, а для работы нам нужно, чтобы текущим был локальный каталог нашего будущего репозитория (папка нашего проекта).
Немножечко командной строки
Переходим куда нужно, например, наш проект находится в d:/repo/1sprog, тогда вводим команду
cd d:/repo/1sprog
Если путь содержит пробелы, то его нужно заключить в двойные кавычки, например,
cd «d:/Моя любимая папка/1sprog»
Чтобы не вводить команду выше, а после запуска сразу «оказаться» в нужной папке, можно поправить параметр Рабочая папка нашего ярлыка для git-bash.
Посмотрим что есть в этой папке проекта с точки зрения git
Вводим команду dir
dir
У меня тут вот что
И вот какая штука. При создании репозитория в этой папке, если не предпринимать никаких мер, по-умолчанию в него будут включены все имеющиеся в папке проекта подкаталоги и файлы. Соответственно, они все будут затем перенесены в удаленный репозиторий и будут реплицироваться при каждой синхронизации. Если интернет мобильный, то чем меньший объем проходит по каналу связи, тем лучше!?.
Например, мы видим на предыдущем рисунке файлы, которые являются побочным результатом компоновки и компиляции программы — это файлы *.obj, *.map и, по большому счету *.hex (исполняемый файл, в данном случае прошивка для контроллера). И есть только пара файлов, которые действительно ценны — 7segement.asm и 7segement.inc
Более того, на удаленном сервере совершенно нечего делать файлу passwords.txt
Исключение некоторых файлов — файл .gitignore
Точка в имени файла присутствует в самом начале, это не опечатка!
Для моего примера содержимое файла .gitignore может быть таким:
.idea/
*.obj
*.map
*.hex
passwords.txt
Каталог .idea/ исключается весь, такой знак подает клиенту git наклонная черта сразу в конце имени каталога, без пробела. Этого каталога не было в выводе по команде dir, это каталог, к котором среда разработки (в данном случае PhpStorm) хранит свои временные и настроечные файлы для данного проекта. Он совершенно не нужен никому на сервере Git, даже мне — исключаем весь.
Также исключаем файлы компоновки и результирующий бинарник, сюда же попал файл с паролями.
Каждое исключение должно располагаться на новой строке.
Сделать можно в Блокноте, а потом при «сохранении как…» в нашу папку проекта дать имя .gitignore, при этом не забыв выбрать тип файла «все файлы», иначе блокнот «приклеит» расширение TXT.
Минуточку терпения, почти все готово!
К стати, когда надоедят танцы с проводником Windows, блокнотом и прочими бубнами можно поставить Far manager и жить станет проще, жить станет веселей!
Я брал стабильную сборку, MSI-пакет установки.
Инициализация репозитория
Есть замечательная статья по основным командам git, который автор cyberspacedk назвал шпаргалкой, но, на мой взгляд, там есть все, что нужно. Но все же пробежимся по порядку, поскольку новичку не все так очевидно как бывалому.
Прим. Все команды выполняются в консоли git-bash
1) Инициализация локального репозитория:
git init
Все проходит «молча», но положительный результат виден по появлению скрытого подкаталога .git в текущей папке. Чтобы включить показ скрытых файлов и папок в проводнике Windows, нужно включить следующие опции в пункте меню Вид (скрин из 10 версии Винды). За одно включим и показ расширений, тоже удобная вещь.
В Far manager переключение видимости скрытых файлов и папок происходит по Ctrl-H
2) Создание абсолютно пустого (без readme, без .gitignore) репозитория на bitbucket.org через веб-сайт
у меня последний экран выглядел так
3) Далее — подключение удаленного репозитория к локальному
Все, что написано далее, не учитывает нюансов, которые добавляются при использовании Линукс и/или стороннего хостинга (мне не удалось подключиться по https). В личном профиле на bitbucket в разделе ssh-ключей имеется ссылка на подробнейшую инструкцию как организовать подключение по ssh.
Строка адреса (https://mickle-iv@bitbucket.org/mickle-iv/1sprog.git) взята из формы, выданной bitbucket в результате создания репозитория.
4) Добавляем файлы проекта в индекс (между add и точкой — пробел)
Перед добавлением можно дать git status и посмотреть какие файлы клиент git предложит добавить. Посмотрите, в этом списке не должно быть файлов и папок, указанных в .gitignore
Прим. Между add и точкой есть пробел
git add .
5) Делаем коммит
git commit -m ‘My initial commit’
Дальше нужно сделать первый push и тут возникло 2 варианта, я использовал первый вариант, предложенный bitbucket
1 вариант от bitbucket.org
git push -u origin master
2. вариант, предложенный самим клиентом git
git push —set-upstream origin master
И вуаля!
Если постигла неудача при инициализации и увязке локального и удаленного репозиториев — не беда. Просто сносим локальный подкаталог .git в нашей папке проекта на фиг (для уверенности можно снести и создать заново новый пустой репозиторий на bitrbucket.org) и аккуратно повторяем все операции, начиная с пункта 1) раздела «Инициализация репозитория».
Некоторые группы русского народа связаны с историей старообрядчества. В Поволжье – это кержаки и кулугуры, в Ставрополье – некрасовцы. Как именуют потомков старообрядцев в Забайкалье?
А. Духоборы
Б. Семейские
В. Молокане
Г. Субботники
Живу я тут — в Забайкалье. Во мне самом, на одну четверть бежит кровь тех самых старообрядцев Забайкалья. Пришли они на эту землю очень давно, в восемнадцатом веке. И пришли не по своей воле, их сослали из западной части России, и Белоруссии (ныне) Часть из них были раскольниками.
Самыми лучшими старателями были они в Сибирской земле, знали толк в поиске золотых жил, где и как мыть золото. И до сих пор эти знания передаются по наследству.
Многие из них имели знания в магии — заговоры, колдовство, ворожба. Из них выходили знахари и лекари.
Местные жители Забайкальской земли, это на тот момент были в основном буряты, эвенки, монголы (кочевой народ) глядя на этих пришлых отмечали у них особенность отличную от одиноких катаржан-ссыльных, они приходили большими семьями с пожитками, поэтому и дали им название семейские.
Вот и я получился на четверть семейский, колдун и старатель..)
А знаете довольно интересная культура у семейских чистокоровок, это в основном уже старики. По натуре очень добрые, но себе на уме. Вот попросит прохожий у селянина-семейского воды попить — не откажут ни когда, но тару с которой тот пил, обратно в свой дом не занесут — выбросят…)
Вот такой самодельный «NanoShield1» для удобства работы с Arduino Nano:
с одной стороны — надежное крепление проводников к выводам контроллера, с другой — возможность быстро снять контроллер для перепрограммирования или использования в другом проекте (особенно полезно, когда внутрисхемное программирование невозможно из-за использования в проекте штатных выводов Tx/Rx контроллера).
Кроме того, в случае простой сборки, можно выполнить соединения без макетной платы, что очень удобно, когда сборку нужно носить с собой (провода не отваливаются при транспортировке).
Для сборки использовал:
1) Макетную плату под пайку, они на просторах интернета присутствуют в нескольких вариантах размеров с шагом отверстий 2.54 мм. У меня под рукой оказалась 50х70 мм,
но немного не хватило длины (лучше взять 50х90), тогда клеммники нормально влезут вдоль длинной стороны. А мне пришлось часть клеммников поставить по короткой стороне платы (на торец).
2) Клеммник XY301V-A-3P (2P) — последнее означает количество контактов и, в данном случае, большого значения не имеет, поскольку эти клеммники стыкуются между собой, образуя единый ряд.
3) Гнезда на плату, однорядные, прямые (PBS — заъем) — нужно 2 шт по 15 контактов. Я нашел только по 16 контактов в продаже. И еще «вляпал» на 27-30 выводы (+5В, reset, ground, Vin) дополнительный 4-контактный разъем. Этот дополнительный разъем поставил для дополнительного удобства:
— размножать питание «+5В» и «землю», которые берутся с контроллера;
— быстро подвести внешнее питание при необходимости и т.п.
В итоге контакты PBS — разъема (читай — выводы микроконтроллера) соединены параллельными проводами с клеммами на периферии платы для крепления «под отвертку».
Правда, как я уже писал, из-за малого продольного размера платы выводы D10-D12 пришлось завернуть на торец. А также «вывеcти» с другого торца «землю», «reset» и внешнее питание («Vin»).
Как быстро проверить товар с aliexpress: редукторный шаговый двигатель 28BYJ-48 с драйвером ULN2003 с помощью arduino nano и arduino ide
Коротко о главном
Товар пришел (28BYJ-48 + ULN2003), надо же проверить! Стандартная библиотека Stepper.h и примеры, которые присутствуют в Arduino IDE, повели себя странно: двигатель не развивает мощности, крутится в одну сторону не взирая на команды смены направления вращения. Хотел уже продавцу писать, но попробовав другую библиотеку Accel Stepper, выяснил, что оборудование ни при чем!
Библиотеку брал здесь — выбрал последнюю версию (1.59.0).