Size: a a a

Saint P Ruby Community

2020 October 08

w

wi11son in Saint P Ruby Community
да, ребейз
источник

AN

Andrey Novikov in Saint P Ruby Community
wi11son
чуваки, напомните плз, как решить проблему гитовыми средствами

есть
commit1 - commit2 - commit-3
как сделать

сommit1 - commit2
                \ commit3

?
rebase --onto пересадит тебе коммит3 (или целую ветку) на коммит1
reset --hard отмотает исходную ветку на commit2
источник

IN

Ilya Nikolaevich in Saint P Ruby Community
wi11son
чуваки, напомните плз, как решить проблему гитовыми средствами

есть
commit1 - commit2 - commit-3
как сделать

сommit1 - commit2
                \ commit3

?
если я правильно понял.
Я бы сделал копию ветки.
на обоих ветках ребейзнулся на мастер и во время выбора коммитов удалил ненужное / оставил нужное
источник

w

wi11son in Saint P Ruby Community
штука в том, что commit1 и commit2 уже мастер
источник

w

wi11son in Saint P Ruby Community
commit3 бранча
источник

w

wi11son in Saint P Ruby Community
Привет первый
источник

IN

Ilya Nikolaevich in Saint P Ruby Community
wi11son
штука в том, что commit1 и commit2 уже мастер
а я что-то не пробовал. Ребейз можно на HEAD~3 делать?

В любом случае. Новая ветка для дампа коммитов. Снести мастер на 3 коммита назад и черрипикнуть нужное. Создать новуюю ветку и черрипикнуть остатки нужного.
Думаю что-то типа

git checkout -b dump_branch
git checkout master
git reset --hard HEAD~3
git cherry-pick commit_number_1 (from dump_branch)
git checkout -b new_branch
git cherry-pick commit_number_2 (from dump_branch)
источник

IN

Ilya Nikolaevich in Saint P Ruby Community
Пусть вон @homo_vespertilio помогает. Я тупенький. Он умненький
источник

АД

Антон Дьячук... in Saint P Ruby Community
Ilya Nikolaevich
Пусть вон @homo_vespertilio помогает. Я тупенький. Он умненький
Я когда с телефона тоже тупенький
источник

w

wi11son in Saint P Ruby Community
Ilya Nikolaevich
а я что-то не пробовал. Ребейз можно на HEAD~3 делать?

В любом случае. Новая ветка для дампа коммитов. Снести мастер на 3 коммита назад и черрипикнуть нужное. Создать новуюю ветку и черрипикнуть остатки нужного.
Думаю что-то типа

git checkout -b dump_branch
git checkout master
git reset --hard HEAD~3
git cherry-pick commit_number_1 (from dump_branch)
git checkout -b new_branch
git cherry-pick commit_number_2 (from dump_branch)
благодарю
источник

ME

Makar Ermokhin in Saint P Ruby Community
Ilya Nikolaevich
а я что-то не пробовал. Ребейз можно на HEAD~3 делать?

В любом случае. Новая ветка для дампа коммитов. Снести мастер на 3 коммита назад и черрипикнуть нужное. Создать новуюю ветку и черрипикнуть остатки нужного.
Думаю что-то типа

git checkout -b dump_branch
git checkout master
git reset --hard HEAD~3
git cherry-pick commit_number_1 (from dump_branch)
git checkout -b new_branch
git cherry-pick commit_number_2 (from dump_branch)
Можно)
источник

PP

Pavel Peganov in Saint P Ruby Community
Рекомендую интерактивчик по теме:
https://learngitbranching.js.org/
источник

P

Pavel in Saint P Ruby Community
Спасибо, очень кстати
источник
2020 October 09

A

Anton in Saint P Ruby Community
Кто-нибудь писал кастомный тип для dry validation с coercion? Что-то или я туплю или дока такая что я не могу найти описание интерфейса для класса типа. Надо просто что если значние не целое число и не positive?, делать его nil. Может встроенное что-то есть?
источник

AG

Alexander G in Saint P Ruby Community
Anton
Кто-нибудь писал кастомный тип для dry validation с coercion? Что-то или я туплю или дока такая что я не могу найти описание интерфейса для класса типа. Надо просто что если значние не целое число и не positive?, делать его nil. Может встроенное что-то есть?
я писал
источник

A

Anton in Saint P Ruby Community
Alexander G
я писал
круто, можешь поделиться? или подсказать в каком направлении искать в доке
источник

AG

Alexander G in Saint P Ruby Community
  Email = Types::String
         .constructor(->(val) { val&.downcase&.strip })
         .constrained(format: URI::MailTo::EMAIL_REGEXP)

 Phone = Types::String
         .constructor(->(val) { "+#{Phony.normalize(val)}" if Phony.plausible?(val) })
         .constrained(case: ->(val) { Phony.plausible? val })

 TimeZone = Types::String.optional.constructor(
   lambda do |val|
     ActiveSupport::TimeZone[val]&.tzinfo&.name if val
   end
 )
источник

AG

Alexander G in Saint P Ruby Community
тебе нужен свой конструктор, который все проверит (если не нужны ошибки)
источник

AG

Alexander G in Saint P Ruby Community
Использую так

        optional(:time_zone).maybe(Types::TimeZone)
       optional(:email).filled(Types::Email)
       required(:phone).filled(Types::Phone)
источник

A

Anton in Saint P Ruby Community
👍🏻спасибо, попробую
источник