Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Git запутался (https://javascript.ru/forum/offtopic/50460-git-zaputalsya.html)

l-liava-l 30.09.2014 16:40

Цитата:

Ситуация "пилю отдельные фичи а потом надо показать все вместе" сама по себе не по феншую.
Если ты хочешь продолжать работать с изолированными фичами, то не надо потягивать никаких изменений в фичеветки, а когда фича уйдет в релиз, смержить с релизной веткой.
Или можно смириться с тем, что отдельно ты эти фичи уже не положишь, но тогда большой разницы между "плодить кучу фичеветок и мержить в одну" и "фигачить в одной ветке" я не вижу
Там в основном верстка, и некоторые странички хотят виджеты. А виджеты пилятся в отдельных ветках.

Там 2 виджета и несколько страничек. И все хотят их в любом состоянии, даже полурабочем)

l-liava-l 30.09.2014 16:42

Цитата:

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

Короче тут вопрос скорее такой:
Есть фича готовая и много не готовых.
Как внедрить готовую во все неготовые если они этого требует)

Makarov 30.09.2014 16:51

В общем варианта два:
1. Фичи поедут в продакшн отдельно, но есть какие-то изменения которые будут полезны в каждой фиче. Тогда я бы почерипикал нужные изменения в существующие фичеветки и продолжал их разработку отдельно.

2. Фичи поедут в продакшн вместе. Тогда с точки зрения gitflow это одна фича. А для себя ты решаешь удобнее пилить в одной ветке или вагоне маленьких, которые мержишь в свою условную "большую фичеветку". Я для себя например люблю одну прямую ровную ветку из небольших коммитов, а в своем репозитории ничто не мешает пользоваться всякими revert и reset --mixed сколько душе угодно.
Вот если над веткой твоей "большой фичи" будет работать кто-то еще, тогда подход множества маленьких веток выигрывает, а если все локально - разницы не вижу

l-liava-l 30.09.2014 17:02

Скорее 2 вариант)

Makarov 30.09.2014 17:09

Цитата:

Сообщение от l-liava-l (Сообщение 332807)
Короче тут вопрос скорее такой:
Есть фича готовая и много не готовых.
Как внедрить готовую во все неготовые если они этого требует)

Готовая фича большая? На удаленном репозитории она есть, или только на твоем?

Я думаю тебя скорее всего спасет волшебная команда git cherry-pick, которая берет диапазон коммитов которые ты ей укажешь и применяет в текущую ветку. Еще можно использовать rebase -i, но с rebase у большинства проблемы сначала

Makarov 30.09.2014 17:10

А, ну если 2 вариант, то да, легче заново ветки посоздавать)

l-liava-l 30.09.2014 17:54

Цитата:

Готовая фича большая? На удаленном репозитории она есть, или только на твоем?
Цитата:

А, ну если 2 вариант, то да, легче заново ветки посоздавать)
Я вот щас тебе лучше всю ситуацию обьясню, может что порекомендуешь

Тут просто смотри какое дело, глобааальный рефакторинг идет. Есть ужасный less файлик из почти 6000 строк, в котором все записано каскадом относительно body и многие элементы которые очень похожи пилятся заного или наследуют стили от подобных. И есть страницы, в этих страницах эти стили и применяются в различных местах.

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

И получается что каждая следующая страничка так или иначе может зависить от предыдущей, т.к я там поправил виджет. Я понимаю что это не правильно и наверное нужно создать отдельную ветку для каждого виджета. Но как потом отдавать изменения этого виджета сразу нескольким страницам?

l-liava-l 02.10.2014 15:11

есть 2 ветки, их нужно слить в одну так, чтобы в гите она показывалась как одна.

Как это сделать? черепикать или просто мердж но без флага --no-ff?

Makarov 02.10.2014 15:18

По всей ситуации влом думать, честно)

Правильно делать rebase в такой ситуации, но у rebase есть нюансы и в некоторых случаях он может навредить. Мне ща лень все расписывать, поэтому отсылаю к документации, где все реально хорошо написано и к статьям вроде этой:
http://habrahabr.ru/post/161009/
Rebase похоже на обобщение черри-пика, после которого черипикнутые коммиты удаляются

А вообще в гите можно многое сделать разными способами и получить один и тот же результат.

nerv_ 01.09.2015 16:47

Подскажите, кто знает

Есть у меня сайт статики на гитхабе, в рамках которого добавил подмодуль гита angular-file-upload.

Как обновить подмодуль angular-file-upload на гитхабе?
На локальной машине я это сделал (взял пулл в рамках подмодуля), не понятно, как уведомить гитхаб.
А? вообще, желательно, чтобы гитхаб подхватывал HEAD подмодуля, а не commit-id.

Причина: сделали мне PR, его смеджил. На локальном хосте работает...


Часовой пояс GMT +3, время: 19:31.