Check Levi9 best QA positions to Backbase team!
×Закрыть

Питання по github

Хочу через crontab пушити свій код на github щоденно о 18:00
Як це зробити скриптом, який би сам брав name і access token з файла?

#!/bin/sh
repo_name=$1
git commit -m "initial commit"
git remote set-url origin "https://github.com/[name]/$repo_name.git"
git push -u origin master
👍НравитсяПонравилось0
В избранноеВ избранном0
LinkedIn

Похожие топики

Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

вже написали — не плутайте коміти та бекап!
бекап — zip по крону, з ротацією, і у разі потреби — кудись далі копія на свій дропбокс. або готові тулзи.

а пушити можна тільки те що має «крапку» в кінці — закінчено.
за бранчі під назвами draft, trash, mess — теж тра бити себе по руках. для цього існують пул реквести

навіть якщо не закінчено, а є потреба запушити — то код повинний бути «вимкненим»

гадити у репо, навіть свого пет проекту — дуже пагана звичка.

гадити у репо, навіть свого пет проекту — дуже пагана звичка.

git rebase — i
...
git push origin -f

З якого файла з CSV, JSON і т.д. ? В загалі таке роблять через AWK www.joeldare.com/...​ki/using_awk_on_csv_files 2. Щось мені каже що ти вирішуєш XY проблему

Ну, initial commit в commit message каждый раз это не очень, вот держите
git commit -m "$(curl -s http://whatthecommit.com/index.txt)"

или так

#!/bin/sh
dated=`date +%Y-%m-%d-%H%M%S`
git add .
echo run git push on ${dated}
git commit -m "$dated $(curl -s http://whatthecommit.com/index.txt)"
git push -u origin master

Боюся навіть уявити що в тих комітах

Те що зроблено за день, в чому боязнь?

Ну вообще-то для кодинга это весьма плохой вариант, но не смертельный, если вы один работаете :-)

Один, це тільки для себе. Jupyter ж не має дефолтної кнопки push on github.

Там есть кнопка сохранить текущее состояние.

Использование GitHub как архиватора файлов я так понимаю смущает всех.
Может стоит поискать инструмент для резервного копирования? А то выглядит как забивание гвоздей микроскопом.

Там есть кнопка сохранить текущее состояние.

А якщо лептоп накриється, або вкрадуть?

Может стоит поискать инструмент для резервного копирования?

Може є щось краще github чи gitlab для бекапу і роботи з версіями?

Може є щось краще github чи gitlab для бекапу і роботи з версіями?

Jupiter имеет свои встроенные checkpoints

Попробуйте еще вариант с тем же dropbox. И синхронизация на каждый чих и checkpoints от jyputer

Не нужно коммитить что попало в Git. Коммиты должны быть ОСМЫСЛЕННЫМИ. Смотря на историю коммитов должна быть понятна история изменений. Ещё коммиты позволяют откатиться назад на рабочую версию. Вы сейчас рушите все основы мироздания своим подходом.

Для резервного копирования файлов — Syncthing. В нём можно настроить «ignored files» (как «.gitignore») и есть даже история файлов.

А в Git коммитите и пушьте изменения по мере выполнения задач, добавлению новых функций, исправлению багов и т.д. А не «текущую работу» по таймеру.

За один день я хоча б щось та ОСМИСЛЕННЕ напишу.
В чому моє гріхопадіння?

Спробую Syncthing

Для резервного копирования файлов — Syncthing.

None of your data is ever stored anywhere else other than on your computers.
В чому смисл такого бекапу?

Бекап — это «резервное копирование», а не «резервное копирование в Х».

Ну и вообще главное не копирование, а навык восстановления.

А якщо лептоп накриється, або вкрадуть?

Мета гарна, ідея незрозуміла. А что если диск крашнется за пол часа до автокоммита? Я уверен, что в течении дня появляется несколько осмысленных итераций. Вот их и стоит явно коммитит и пушить. Так гляди и понимание Continuous Integration придет trunkbaseddevelopment.com/continuous-integration

А что если диск крашнется за пол часа до автокоммита?

Свою одноденну роботу зможу відновити з пам’яті. Цікавить практичний підхід, як часто ви пушите свій код, як робите бекапи?

Я коммичу довольно часто, когда что-то осмысленное появляется. Это может быть и раз в 10-15 минут, может быть реже. Могу пушить в remote ветку сразу, если коммит самодостаточный, могу собрать несколько коммитов и запушить вмете. В день при активной разработке может быть порядка 30 коммитов. Когда целостное изменение готово (редко занимает больше 1-2 дней иначе изменение дробится на несколько частей) делаю PR, для которого прогонятюся тесты и делается ревью. Если все ок, все коммиты в PR squash-атся и мержатся в мастер. Таким образом в мастрере остается понятная история осмысленных изменений системы.

І кожен раз в командному рядку набираєте git commit ... git push ... ?

Я использую Rider, основанный на Intellij, там это Ctrl+Alt+K для вызова диалога коммита, ввод сообщения, Ctrl+Enter для коммита. Потом Shift+Alt+K, Ctrl+Enter для пуша. Все очень быстро. Но тоже можно и в терминале делать. Даже есть какие-то расширения/алиасы для гита чтобы много самому не печатать.

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

Некоторые shell подсвечивают предыдущие комманды когда начинаешь ввобдить начало команды, получается что-то типа автокомлита.

Я использую Rider, основанный на Intellij, там это Ctrl+Alt+K для вызова диалога коммита, ввод сообщения, Ctrl+Enter для коммита

Шкода що jupyter цього не має.

Но даже без них в терминале можно просто стрелочку вверх нажать пару раз

Якраз це мені за**ало робити кожен раз.

Якраз це мені за**ало робити кожен раз.

Жертва консолі(

Є ж десктопні додатки з гуі для гіта.

git-scm.com/...​v2/Git-Basics-Git-Aliases. Можешь погуглить какие-то популярные заранее сгенеренные.

Intellij — це той самий, через який зламали SolarWind? Ню-ню ;-)

Не, то TeamCity упоминался в заголовках типа «Ученый Изнасиловал Журналиста.»

Взагалі-то не журналісти, а ФБР вже почало розслідування щодо участі софту Jetbrains в цій атаці.
Те, що SW було, скоріше за все, зламано через TeamCity компанії JetBrains, дає серьозні підстави вважати, що й Intellij тої «чеської» компанії Jetbrains несе загрозу :)

www.reuters.com/...​ins-sources-idUSL1N2JH2CQ

Глянь ответы CEO JetBrains, SolarWind не предоставили никаких результатов расследованих, просто голословные заявления. Но я посыл понял, компания-аггрессор, кучму геть.

А що ще може відповісти москаль, якому прищемили хвоста? «Це не ми!», «Нас там НЄТ!», «Какіє будут ваші доказатєльства?».
Це вже нікого не дивує.

Просто дочекаємось, коли розслідування добуде кінця й винні будуть покарані, навіть заочно.

Гарного в цьому те, що після такого скандалу ІТ-сфера Мордору стане токсічною для міжнародних компаній, тому, скоріш за все, eкраїнське ІТ може здобути якись зиск із цього.

Спасибо за хорошее настроение!

В мене все на аліасах, дуже зручно й швидко. Наприклад:
Закомімітити все:
gca (git commit -a)
Запушити в ремоут:
gpo <ім’я бранча> (git push origin)

До речі, написати коміт меседж зазвичай займає набагато більше часу, ніж набрати команду створення коміту, бо зрозумілість і інформативність меседжу — важлива.

Спробуйте подивитись опен-сорс проекти, там зазвичай дуже прискіпливо відносяться до культури комітів.

Спробуйте подивитись опен-сорс проекти, там зазвичай дуже прискіпливо відносяться до культури комітів.

Ще була така стаття:
Коли дрібниці важливі. Пишемо коміти в Git
dou.ua/...​ting-quality-git-commits

Економія в декілька символів, тю, я думав щось серйозніше — пару гіт команд в одному.

мені цього вистачає.
для чогось більш складного є git aliases
git-scm.com/...​v2/Git-Basics-Git-Aliases
або ті ж аліаси шела, але тут вже складно придумати такі комбінації, які будуть використовувати настільки часто, щоб був сенс їх скорочувати.

не знаю, що Ви пишете, але якщо використовувати GoogleColab (аналог Jupyter), то там є в меню «зберегти на гітхаб» і навіть перегляд діфів між комітами. запуск можна виконувати як віддалено на серверах гугла, так і на локальному пітоні запускати.

Ок, если хочешь идти по тяжелому пути с токенами — держи:

while IFS=, read -r field1 field2
do
    echo "$field and $field2"
done < input.csv

разделитель запятая. Для пробела поменяй IFS=, на IFS=

Коммитить шо попало по таймеру. В мастер. Теперь я видел всё...

Гитхаб это лучший файлообменник! А каким ты файлообменником пользуешься? :-)

ну и что что в мастер? Не в прод же ;)

Вроде «левые» топят за то, чтобы избавиться от слов black(list), white(list), а также master & slave.
Так что, возможно, в этом проекте master — это уже и не главная ветка, а главная — какой-нибудь main, prod, you_name_it.

Не топят. Но QAnon бы Вами гордился. ;)

зачем делать такую глупость, как master’ом главную ветку? Она же дефолтная. Можешь забыть переключиться, поработать и запушить в master по ошибке.

Фаина Раневская говорила, что есть только два настоящих извращения — балет на льду и хоккей на траве.

Теперь я узнал третье...

В скрипте описаны первоначальные действия, причем git add утерян. В регулярные действия будут входить git add, git commit, git push , если все идёт хорошо. А в мастер пушите просто ради бекапа?

git add

так звичайно

А в мастер пушите просто ради бекапа?

так, ради нього

А что, ssh ключи на гитхабе уже запретили?

— Але, Билл? Слушай, у меня есть отличная идея. Давай введем запрет на ssh ключи и будем давать их только за деньги?

Тише-тише, не надо тута эта, ато услышат

Подписаться на комментарии