Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

git question

690  
  moose старожил06.12.18 21:07
NEW 06.12.18 21:07 

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

#1 
AlexNek патриот06.12.18 23:06
AlexNek
06.12.18 23:06 
в ответ moose 06.12.18 21:07

Насколько я помню, для этого делается второй бранч.

Мастер + Девелопер

Не подходит?

#2 
dymanoid знакомое лицо06.12.18 23:07
dymanoid
NEW 06.12.18 23:07 
в ответ moose 06.12.18 21:07

Squash merge.

#3 
MrSanders старожил07.12.18 09:53
NEW 07.12.18 09:53 
в ответ moose 06.12.18 21:07

Лучше squash-ить коммиты в локальной ветке, потом пушить этот 1 коммит на центральный сервер. Преимущество по сравнению с squash merge в том, что для ветки с одним коммитом можно сделать Pull Request.

https://blog.carbonfive.com/2017/08/28/always-squash-and-r...


Мы пушим всё. Проще мелкие ошибки искать и откатывать.

#4 
Simple Nothing is f*cked07.12.18 15:29
Simple
NEW 07.12.18 15:29 
в ответ MrSanders 07.12.18 09:53

Мы в актуальном проекте пушим все, потом после пулреквеста сквошим и пушим еще раз (дает в итоге смерженный пулреквест в жире), потом мержим.

#5 
Simple Nothing is f*cked07.12.18 15:30
Simple
NEW 07.12.18 15:30 
в ответ moose 06.12.18 21:07

Технически либо git rebase -i либо git reset --soft && git commit

#6 
  moose старожил07.12.18 20:17
NEW 07.12.18 20:17 
в ответ MrSanders 07.12.18 09:53

хорошая ссылка, спасибо.

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

#7 
  moose старожил08.12.18 11:51
NEW 08.12.18 11:51 
в ответ moose 07.12.18 20:17, Последний раз изменено 08.12.18 11:53 (moose)

чтобы не экспериментировать на работе, установил на компе smartgit, завел репозитори на bitbucket, все как у клиента.

клоню репозитори с их дифолтным "ридми.тхт", создаю testfile0.txt с одной строкой. коммит.

добавляю строчку в мой файл, опять коммит.

создаю еще один файл testfile2.txt с одной строкой. коммит.

пуш.

создаю на битбукете бранч.

заново клоню мастера.

вижу, что testfile0.txt modified.

даблкликаю. показывает сравнение "before" vs "working tree".

в бифоре - одна строчка, в уоркинг три - две.

кнопка коммит активна. давлю, говорит, что нечего коммитить, все чисто.

в командной строке гит это подтверждает.


что у меня не так? я так понимаю, что оно сравнивает то что я склонил с состоянием перед последним коммитом. а нафига оно мне? где-то, наверное, настройки в этом смартгите нужно поменять? как хорошо и удобно с командной строчкой. там не все так наглядно, но зато все понятно, и все - чистая правда : (

#8 
MrSanders старожил08.12.18 19:03
NEW 08.12.18 19:03 
в ответ moose 08.12.18 11:51

заново клоню мастера.

вижу, что testfile0.txt modified.

Я вот это не понял. Т.е. вы ещё раз сделали git clone в другойкаталог, или нажали какую-то кнопку в smartgit-е? (его я не знаю)

#9 
  moose старожил08.12.18 19:38
NEW 08.12.18 19:38 
в ответ MrSanders 08.12.18 19:03, Последний раз изменено 08.12.18 20:08 (moose)

могу сейчас грохонуть эту директорию локально и сделать новый клон с помощью смартгит. уверен, оно мне снова покажет, (если выберу последний коммит. видимо, здесь собака зарыта), что этот файл модифайд. проделать?


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

#10 
MrSanders старожил08.12.18 20:17
NEW 08.12.18 20:17 
в ответ moose 08.12.18 19:38

Может он показывает при "выборе последнего коммита" что было изменено в последнем коммите? Консоль наше всё :)

#11 
  moose старожил08.12.18 23:03
NEW 08.12.18 23:03 
в ответ MrSanders 08.12.18 20:17

но почему у клиента показывает разумные вещи? там клонишь, смотришь на файлы - все unmodified, пока не поменяешь что-нибудь. в понедельник попробую шепотом спросить...

#12 
  moose старожил09.12.18 13:53
NEW 09.12.18 13:53 
в ответ moose 08.12.18 23:03

нашел клавишу 'reveal working tree in graph', и все стало значительно лучше : )

#13 
AlexNek патриот10.12.18 19:08
AlexNek
NEW 10.12.18 19:08 
в ответ moose 08.12.18 19:38
и сделать новый клон с помощью смартгит

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

Мне лично нравится Git Extension

#14