Вы видите копию треда, сохраненную 18 сентября 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Давайте же узнаем, кто из анонов внедрил Git в пяти конторах, кто родился с аккаунтом на BitBucket, кто переехал с FTP на RCS, кто устраивает кровавые жертвоприношения при работе с SourceSafe и т.д.
Расскажите, с какими системами сталкивались, какие используете, какие хотите использовать.
И не забывайте про срачи!
VCS vs SCM
CVCS vs DCVS
CVS vs SVN vs TFS vs Perforce vs Git vs Mercurial
Надо ли отправлять в биореактор людей, не использующих github?
Ну а так же нельзя обойтись без веселых лайфхаков и факапов из жизни и обсуждений ошибок в https://git-man-page-generator.lokaltog.net
А также нельзя не отметить, что OP-хуй обосрался с шапкой
несколько раз пытался использовать mercury, git, svn. Блядь, ну не прет у меня никак. Заебывает пуши делать и писать, что же я там исправил. Да и так и не понял, нахер они нужны мне лично. Ладно бы контора стопицот целовек.
Вот у тебя ОП много проектов? У меня около десятка приборов и на каждый программа нижнего уровня и у некоторых верхнего. У некоторых еще программа для настройки. Все по папочкам разложено, старые версии в архивах. Куча реадмишек. Блядь, ну не удобно мне все это в гит скидывать. Как вы до этого доходите?
В приличном обществе это не обсуждается. Само собой любой программист обязан уметь работать с гитом в консоли. Если на собеседование приходит хер, который никогда их не юзал - для галочки спрашиваем еще пару-тройку вопросов и отпускаем к хуям.
Тебе лет 40 и ты пилишь софт для микроконтроллеров и СКАДА?
Может тебе оно и правда не надо, лол.
Вкатился в гит, зависимость есть. Там ничего сложного. Судя по контенту гитхаба, гитом научились пользоваться даже хипсторы, они там дотфайлы с алиасами шэлла хранят со своих эпплов.
> обязан уметь работать с гитом в консоли
Ой, не пизди, достаточно знать названия команд.
Работать в сосноле - сорт оф изврат, когда речь заходит о визуализации всех этих диффов, бранчей-хуянчей, и т.д.
Ну может, в редких случаях сосноль бывает нужна.
Если случай не редкий - автоматизируй, хуй, или ищи норм. инструмент.
Оп, ты что, дурак? Может, ты еще предложишь обсудить компьютеры на основании того, что все разработчики используют компьютер?
>>035926
Ну вообще-то он прав. Если разработчик не знает add, status, checkout, push, pull, merge, stash, cherry-pick, иметь понятие зачем нужен rebase и что такое log, то возникают сильные подозрения в его компетенции.
> Работать в сосноле - сорт оф изврат, когда речь заходит о визуализации всех этих диффов, бранчей-хуянчей
Но и ты имеешь поинт. Консоль - заебись и удобно. Но проблемы, связанные с диффом - диффы, хистори и решение конфликтов, конечно, намного удобнее решать в CVS-инструментах. Сам использую гит баш и CVS-плагин иде для решения диффопроблем. Брат жив, тимлид счастлив.
> достаточно знать названия команд.
> перечисляет команды
Ну так о том и речь, базвордами владеть надо. Где с ними работать - вкусовщина, а не пиздец обязан уметь, кстати rebase не нужен - деструктивные команды вообще нахуй не нужны.
> rebase не нужен - деструктивные команды вообще нахуй не нужны
Два чая. Жутко бесит, когда мержеров время от времени кусает бешеная псина и они требуют объединять коммиты в пр.
Но то, что он не нужен не означает, что не нужно знать зачем нужен рибейз.
Рибейз топик, если начал что-то делать в локальной ветке и внезапно докинули говна.
Хуй знает зачем это тред. Любое более менее вменяемый разработчик с 3-5 годами опыта знает git, mercurial и cvs/svn опционально.
заставляет более упорядоченно мыслить, например я кодаю и вижу что опа тут можно кое-че поправить - но не правлю, вместо этого делаю пометку, забиваю хуй и делаю только то что касается текущего бранча. или пришла мне в головую ебанутая идея - бранчирую чтобы мастер не засирать, и если она не прокатила то и хуй с ней. без гита не представляю как можно жить.
640x360, 3:22
Не забудь про fetch, commit, про понятия working area, stage area, local repo, remote repo
>>036144
>вменяемый
>2ch
На самом деле в треде можно пощупать температуру по больнице: вот некоторые не юзают source control вообще. Было бы неплохо, чтобы народ также рассказал про свою деятельность: кровавый тырпрайз, смузихлебство, байтоебство, мамкин борщ с фрилансиком или что иное... ну и стек конечно же (подозреваю довольно сильно коррелирует)
>На самом деле в треде можно пощупать температуру по больнице: вот некоторые не юзают source control вообще. Было бы неплохо, чтобы народ также рассказал про свою деятельность: кровавый тырпрайз, смузихлебство, байтоебство, мамкин борщ с фрилансиком или что иное... ну и стек конечно же (подозреваю довольно сильно коррелирует)
Занимался сириус статистическим анализом, работали на аутсорс конечно же на оче крупную американскую контору.
Была своя самописная система управления проектами с макросами встраивающими нужную информацию в код.
Как правило каждый программист работал над одной небольшой программой в проекте, который состоял из дестяка - нескольких десятков таких программ.
Системы контроля версий - не было.
Делали бекабы постоянные.
Откатывать изменения приходилось всего раз и по жуткому проебу одного разработчика.
Планировали ввести систему контроля версий SVN, не знаю, ввели ли.
Все и так работало, и подходящих трудовых ресурсов под рукой не было...
Честно говоря, меня гит как-то не очень вдохновляет.
Я не могу проникнутся его суть.
Для совместной работы по моему он не подходит.
> fetch
Лично я не пользуюсь, но вкусовщина.
> commit
Ну это да.
> про понятия working area, stage area, local repo, remote repo
Это совсем базовые понятия. Без них гит не получится нормально использовать.
>>036285
> меня гит как-то не очень вдохновляет.
> Для совместной работы по моему он не подходит.
Блять, я отказываюсь верить, что такие люди существуют в 2017 году и работать разработчиками. Гит для совместной работы не подходит, просто охуеть.
Ты же тралл, да?
Вот как ты описал я так и делаю.
Удаленный дев сказал коммитить в бранч
Коммичу в бранч
Коммиты через какое то время пропадают о чем меня извещает тестер
В логах как будто я изменение пробелов закоммитил
Не выдержал, смерджил в мастер и запушал
Что это было?
Кровавый банковский тырпрайз. По принятию пров есть определенный регламент, включающий успешный билд на CI и обязательные апрувы от разных групп людей (в зависимости от пр и его контента) - команды, архитекторов бд, архитекторов приложений, команды мержеров и другие группы лиц.
> интересно про должность мерджера
Нечто среднее между архитекторами и код стайл адвокатами - ревьювят все пры и без апрува из их команды не вливается ничего.
>дотфайлы с алиасами шэлла хранят со своих эпплов
Эх, а раньше диск Цэ на винде расшаривали в DC++...
https://habrahabr.ru/post/161009/
для пидоров
л
я
п
и
д
о
р
о
в
Или там notabug.org, savannah или тысячи других.
>Блять, я отказываюсь верить, что такие люди существуют в 2017 году и работать разработчиками. Гит для совместной работы не подходит, просто охуеть.
>
>Ты же тралл, да?
Поправь меня, если я неправ, но гит нацелен на хранение локально репозитория, и пердолинга этого локального репа.
И казалось бы, причем тут совместная работа?
Гит же не является централизованной системой контроля версий. Ведь так?
Это как я понимаю удобно для разработчиков одиночек, или в случае когда несколько красноглазиков патчат ОПЕНОСОРС свои локальные репы под себя.
С туманной преспективой комита своего дерьмокода с последующим ручным слиянием.
Сорцы над которыми работал обезьян изменились, и он неможет просто внести измениния из своего репа, нужно делать мердж.
Обезьяна это не устраивает и он перезаписывает репозиторий целиком своей версией, убивая все изменения внесенные другими.
>Это как я понимаю удобно для разработчиков одиночек
наркоман, гитапараша как раз для этих целей и не удобна
пытался через чекаут создать ветку branch. потом сделал
git -u push origin branch
но через какое-то время мои коммиты пропадают с remote
Спасибо, анончик, зарегался, доволен!
Можно просто коммитить всё без коммента, чтобы можно было потом откатиться назад. Этакий load-save, как в играх.
> Заебывает пуши делать и писать, что же я там исправил.
Нахуй не пиши, делаешь фичу в своем бранче, на эксперементы под-бранчи. Оче удобно переключатся между веточками и ничего не проебать, не надо по два раза одну мыслю писать.
Дескприпшен коммитов нахуй не нужен, пока не пушишь результат. Комментуруй коммиты - хуй1, пизда, хуй2, азазазаз, лалка - все ок, это твоя локальная веточка.
Сделал фичу, и мержишь из подветочки в свою веточку. Переписываешь историю коммитов, чтобы у тимлида встал, отправляешь пул-реквест.
Пушить по десять раз на дню - идите в нахуй, я неготово.
> Комментуруй коммиты - хуй1, пизда, хуй2, азазазаз, лалка
> Переписываешь историю коммитов
Охуенно, теперь предлагают комментировать джважды вместо одного раза. Даже одного раза много было.
Не сложно, а нахуй не нужно. Коммент к коммиту - лишняя информация, бесполезная совершенно. Сделать её обязательной пиздец как тупо было. Коммент должен быть к пушам и слияниям. Ещё бы обязательный коммент к каждой модификации файла сделали, ёбта.
> Коммент к коммиту - лишняя информация, бесполезная совершенно
В стадной разработке - метаинформация облегчает жизнь. Британские ученые доказали.
> Сделать её обязательной пиздец как тупо было
Ну ты же программист, епт. Напиши скрипт, чтобы "" пустая строка автоматом добавлялась, если коммента нету. Алиас к шкрипту и профит. Или погугли, ты наверняка не один такой, кто enter осилить не смог.
Потому что в умелых руках бензопила - полезный инструмент, а в руках дебилов даже карандаш смертельно опасен.
Гитхаб лучше сделан. Битбакет в принципе справляется, но мне не оч комфортен стиль продуктов атлассиана, неинтуитивно, приходится копать чтобы найти что нужно, а в гитхабе такого почти нет: щёлкнул и сразу получил что хотел, не напрягая голову.
Что лучше впарили, то и жрут
Не знаю что это, но видимо не это.
Остальные системы нинужны.
Где unix-way? То есть качать отдельными инструментами с возможностью докачивать.
git и есть unix-way, основной исполняемый файл только берет список параметров и передает их конкретной тулзе
то бишь git add --ignore-removal . вызовет git-add --ignore-removal . где git-add - отдельный испольняемый файл. И этой ебалы там 160 с хером штук, поэтому такие различия в синтаксисе комманд
Не, раньше было полно sh скриптов, сейчас все переписано на няшной сишке
[CODE][раздел первый](#Раздел-первый-первый-раздел)
[раздел второй](#Раздел-второй-второй-раздел)
## Раздел первый первый раздел
## Раздел второй второй раздел[/CODE]
И половина работает, половина -- нет, не могу понять, чяднт?
И кому это может понадобиться в 2к17? У тебя что, инет через диалап до сих пор? Попроси выдать тебе репозиторий упакованный в архив и качай хоть частями, хоть целиком. И будет тебе без git clone.
Была статья - мелкомягкие перепилили гит чтобы тот работал с террабайтами их индусского кода. Вообще, исходники открыты, раз тебе надо, то запили докачивание.
Совсем охренели, ругаться на бесплатный попен-сорс.
представте, какая кодовая база у майкрософт
они ведь сохраняют его аж с 84года
там просто сумашедший объем
Было вроде около 20 реп (SourceDepot+TFS)
Стал один гитовский, под который пришлось запилить специальную файловую систему
>там нет бранчей
Шта?
Бранчи там есть, в отличие от гита
Гитовские поинтеры тоже есть - bookmarks
нипонял, это мне теперь репозиторий пересоздавать, если в персистентное хранилище условный пароль попадет?
На практике часто приходится консолью пользоваться? В том же гите? По какой причине?
Там есть shun для таких ситуаций - ты можешь удалять артефакты (конкретные версии файлов) и запретить своему репозиторию их когда-либо получать. Т.е., ты облажался, потом закомитил правильную версию без пароля, неправильную версию удолил. В результате в истории остались оба комита, все знают, что ты облажался, но первый комит ссылается на несуществующий артефакт.
> На практике часто приходится консолью пользоваться? В том же гите?
Каждые будни.
> По какой причине?
Удобнее для всего, кроме задач связанных с дифом.
О, это то я что искал! Хотя в общем есть принципиально новые идеи, но не суть. Суть в том, что есть подобное. Это, я потыкал его, очень удобно. Да, там есть веб-сервер и вообще идея удобная. но среди именно монстров-репозиториев нашел только chiselapp.com и он правда таки хорош минимализмом. По сравнению с gnu savannah намного лучше по удобству мне. А сам fossil мне показался просто очень удобным и теперь я таки начал напоминать зачем нужно все это и как это работает. Очень хорошо по сравнению с другими монстрами для меня опять же. Вот действительно хочется начать его использовать.
>>038978
>>039029
Может я на радостях, расскажите о своем опыте использования подробней, пожалуйста.
>расскажите о своем опыте использования подробней, пожалуйста.
берешь и пользуешься, что рассказывать?
Как говорил наш замполит: "Ты хуй изо рта вынь прежде чем говорить с людьми!"
Просто напиши макрос под свой EDITOR чтобы он # убирал в сообщению к коммиту, которое git оставляет по умолчанию. Или прочитай проgit. Там наверное будет написано как дефолтный commit messag настроить.
>Как говорил наш замполит: "Ты хуй изо рта вынь прежде чем говорить с людьми!"
У Вас там хуи во рту держать распространенной практикой было?
Помню, как-то раз в компании один офицер рассказывал: "Вот был у нас в роте один хуй..."
А я говорю: "Уважаемый, правильно говорить не в роте, а во рту."
Этот подход сохранился в SVN. Научились быстро создавать "ветки"-папки и они ничего не весят.
Фриланс как бы намекает, что твои проекты короткоживущие, а в команде ты не работаешь. В том и причина.
У нас есть идея веб-проекта внутренний инструментарий с доступом со всех обьектов для нас, строителей, даже накидан костяк прошлым программистом и кое-как работает. Прошлый чел сьебался не пофиксив свои косяк, не доделав многого, поэтому мы переписываем договор и нанимаем нового. Как обезопасить себя от бекдоров, слива инфы и прочего недобросовестного отношения программиста-фрилансера? Идея такая - поднимаем какой-либо version control, куда этот программист пишет. Оттуда автоматом все перекидывается на продакшен сервер, ибо прогер все-равно один. В случае конфликтных ситуаций, подозрений итд, поднимаем логи, диффы и смотрим, был ли злой умысел и ебем его договором через суд или убеждаемся, что это был взлом и слив по другим каналам.
Так вот, вопрос - правильно ли я понимаю то, как эти системы работают? Можно ли будет посмотреть, когда была сделана правка, приведшая к печальным последствиям? Может ли программист как-то влиять на эти записи и удалить лог именно по спорной записи - т.е. она будет на продакшен сервере, а в логах version control ее не будет и он свалит все на прошлого программиста, мол это до меня было? И, так как система эта с нас - можете ли назвать плюсы и минусы той или иной системы и какая нам подойдет оптимально для этой задачи? Сам я не айти, разобрался лишь слегка на уровне покупки и запуска линукс сервера на centos.
судя по тексту программист не зря от вас съебался
>Сам я не айти
ну так съеби отсюда, или плати бабки за консультацию
Для начала: никому не нужен твой веб-проект.
Чтобы нельзя было удалить данные с системы контроля версий, нужно правильно настроить права на ней. Настройка зависит от системы.
Устанавливать на сервак сам собираешься?
Анализ изменений кода делать сам собираешься?
У них разная ценовая политика. Где больше подходит твоей команде, тот и юзаешь.
> Устанавливать на сервак сам собираешься?
Видимо да.
> Анализ изменений кода делать сам собираешься?
Это будет в случае, если база уплывет и будут подозрения в т.ч. на бэкдор. Будем нанимать в таком случае.
У тебя на самом деле 2 пути:
1. Учишься сам прогать.
2. Находишь деньги на проект, чтобы не кидать фрилансеров и не бояться за бекдоры.
Деньги есть, кидать не собираемся. Но работать просто на доверии я в рот ебал после того, как сьебался прошлый.
Тогда тебе просто нужно найти нормального спеца, раз такой пушистый.
Предыдущего как нашёл? Шоб нидораха был?
Спец тоже есть. Под него и пишем договор. Прошлый был по знакомству и без договора, увы увы.
Я знаю только способ через SVN. Ставишь сервак с VisualSVN, там можно настроить права пользователей. Ну и вся настройка.
Соль в том, что в SVN по удалёнке сохранённые изменения практически нереально поменять, если не давать доступ к самому серваку с репозиторием.
В Git'е пердолинга с настройкой гораздо больше. + в Гите можно коммиты по удалёнке править, что тебе вообще не подходит.
Что значит не доделал? Сделал, но вам, как оказалось, нужно немножко другое? Это нормальный процесс разработки, вы платите за развитие своего продукта.
> Что значит не доделал?
Были указаны баги (мелочь всякая, типа ИТОГО не суммирует, хотя в форме прописана эта графа), на которые он согласился и написал что исправит без дополнительной платы. Напомнили ему через неделю и еще через две недели. В ответ были только обещания поправить и дальнейшая тишина.
>>039994
> Соль в том, что в SVN по удалёнке сохранённые изменения практически нереально поменять, если не давать доступ к самому серваку с репозиторием.
Ага, спасибо! Почитаем сейчас.
> Ставишь сервак с VisualSVN
Гугл пишет, что он виндовый онли. Но я ведь могу развернуть у себя на центОС сервак, дабы не плодить сущностей. Выбирать любой не брошенный проект? Они все в базовой функциональности одинаковые, я так понимаю?
Это просто пакет всё в одном, с удобным гуем. Но вот, например:
https://www.howtoforge.com/tutorial/how-to-setup-a-svn-server-on-centos-6/
Спасибо за помощь! Буду разбираться дальше, наверное все же куплю часок-другой у какого-нибудь линуксоеба, дабы он в консультативной форме обьяснил чего и как и помог настроить.
> Пушить по десять раз на дню - идите в нахуй
ПОЛЕТЕЛ ЖЁСТКИЙ ДИСК/ФАЙЛОВАЯ СИСТЕМА/ЧТО-ТО СЛУЧИЛОСЬ С КОМПОМ
Скачай репозиторий в архиве. Некоторые гит хостинги умеют
Чего только не придумают, только бы не делать 2 лишних клика, чтобы запушить изменения.
И ещё миллион оправданий, почему комменты к комитам не нужны
Зачепушить
Ну я могу на коленке набросать говнокод за 5 минут, который будет работать, эдакий proof of concept, но в удаленный репозиторий такое просто не нужно добавлять.
Нет, не нужно, тебе бы только захламить кодовую базу избыточным, нигде неиспользуемым кодом. Думаешь кому-то интересно читать твое говно?
Я в тортилле только логи смотрю. Вообще не могу этими гусями пользоваться. У гитхаба еще нормальный гуй. А так только консоль. Где там в гуи специализированные команды типа rebase искать хз
>для хипстеров, у которых каждая правка может разломать всё ядро, поэтому каждому выдается веточка, пуш в мастер запрещается, а каждая правка логгируется и содержит подробный коммент длиннее правки.
Блять, охуительная история просто. Я хуею с зк. Откуда вы вообще лезете, блять?
> Думаешь кому-то интересно
Да. Когда возникнет вопрос, почему выбран вот этот конкретный способ реализации, и что имелось в виду в каком-то месте кода, можно проследить историю вплоть до прототипа и разобраться, а не спрашивать того, кто писал код десять лет назад, успев после этого уволиться и умереть.
> захламить кодовую базу избыточным, нигде неиспользуемым кодом
Ты что-то путаешь. В основной ветке неиспользуемого кода быть не должно (даже закомментированного). Для этого, как я уже говорил, есть бранчи, и их можно закрыть, когда дальнейшее развитие того же прототипа не предвидится. А размер репозитория особого значения не имеет, да и код жмется хорошо в любом случае.
Так.
> публично обсуждается каждая козявка
Между тем, софт как был говном, так и остался.
> эт и есть опенсорс.
>Да. Когда возникнет вопрос, почему выбран вот этот конкретный способ реализации,
Если эту задачу уже решал то никаких прототипов не будет вообще, отдам решение. Если ты хочешь поговорить о методологии, то давай определимся, нужно ли документировать опыт. Ответ - не нужно, ибо долго и дорого для бизнеса.
> Для этого, как я уже говорил, есть бранчи,
Если тебе дали KPI на отрисовку котиков, то задача не плодить куст из 4 бранчей, где ты выбираешь библиотеку по рисованию, а отдать бранч который закроет таск. Три остальных бранча у себя оставь - никому нахуй не интересно, почему одна библиотека у тебя не завелась, вторая не подошла по интерфейсам, третья с кучей зависимостей. Потом на вечеринке в кругу задротов расскажешь, если к месту будет.
Ну, да, когда уязвимость в модуле дает root-доступ.
>Между тем, софт как был говном, так и остался.
Через годик новую версию выпустим в релиз, там не будет старых багов. Будем повторять пока не надоест, потом все перепишем и см. начало.
Видел. Только на винде я его видеть перестал, а на линуксе кернелпаники вижу периодически - качество опенсорсных дров как всегда на высоте.
Не знаю. У меня всё работает.
А что там такого сложного в ядре, что можно было сделать проще?
Репозиторий на github. Я начал с того, что форкнул его, потом склонировал к себе на компьютер, дописал модули, запушил в свой репозиторий, оттуда уже делал пулл реквест. Прочитал, что надо из ветки мастер написать так:
$ git fetch upstream
Получаю такое:
fatal: 'upstream' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Что здесь подразумевается под upstream?
https://habrahabr.ru/post/336470/
>Пожалуйста, реализуйте пулл-реквесты и трекинг багов, охватывающие различные репозитории одного монодерева.
Они говорят, что им не нравится то, что это центрлизованно и хотят как в fossil, а пока должны мучить себя списками рассылки?
>tfw первый раз решил мерж конфликт
сегодня я постарел на 100 лет
> вижу что опа тут можно кое-че поправить - но не правлю, вместо этого делаю пометку
А так можно в git? Или чем ты пользуешься?
И чем это отличается если в коде коммент TODO: написать?
Понял, что проебался, там есть bare и хуки. Только все равно нихуя не понятно, как это все там отобразить. Хардом сделать пуш? Как блять вообще управлять этим?
гит для пидоров, страдай
>А так можно в git? Или чем ты пользуешься?
да нет, просто записываю в .тхт файл или fixme коммент ставлю.
В жидее есть плагин для заметок.
Я тоже как-то на автомате добавляю ничего не комментируя: вместо коммента дата и время.
Зато потом можно восстановить какие когда изменения были, когда забацал какую-то функцию, отразить в ее версии эту инфу.
Ну и дураки. Обучить программиста программировать сложнее, чем научить любого хера с улицы делать коммиты. Если программист еще не умеет этого делать, значит в этом не было надобности или он только начинающий - для одиночной разработки (учебы) гит не нужен - это переизбыточность. А на гитхаб хуйней и поделками 2*2=4 засирать вредно для поиска нормальных вещей, да и вообще гитхаб тоже мало отношения имеет к языкам программирования и программированию вообще. Это ЧСВ соцсеть для петушков и инструмент для серьезных проектов, а не одиночных я-тут-себе-наваял программеров.
Он нужен для любого проекта больше хеллоуворлда (1000 строк). Бранчи вот редко нужны.
Что-то я пока что особой нужды в нем не испытываю. Заменил архивирование версий на сваливание скриптом в git. Очень редко когда смотрел историю какого-либо файла (всего несколько раз за несколько лет). Спрашивается - а нахуя он в общем-то нужен по большому счету?
А может мне просто нужна другая VCS, которрая умеет что-то более интересное, чем git, но я просто о ней не знаю?
>Заменил архивирование версий на сваливание скриптом в git
>архивирование версий
>Бранчи вот редко нужны
>на автомате добавляю ничего не комментируя
>и вообще гитхаб тоже мало отношения имеет к языкам программирования и программированию вообще
орнул с ванек-долбоебов, когда уже лето закончится
для вас долбоебов, умные люди придумали fossil, нет бля, хотим жрать говно, хотим git
Нахуй бранчи скажем для небольшого скрипта? - Ты ёбнутый?
Или для разработки в одиночку, когда нет других версий кроме тех, что ты сам делаешь, то есть нет чужого вмешательства и необходимости мержить версии разных долюоебов в одну?
Ой, да ладно - просило что-то вводить, вот я и дал ему что-то. К тому же можно в своем формате сделать - у меня вот с миллисекундами. :) А вообще мне похуй - главное, что на автомате и меня не напрягает.
Конкретнее.
Кстати, в Fossil поддержка Unicode в именах файлов есть?
А то hg/Mercury вот обосрался.
Пиздец, как бороться с мердж конфликтами? Возникают на пустом месте просто.
>как там в 2005?
заебись, не нужно читать книги и кучи форумов, что бы сделать элементарную операцию.
Понимаешь, во многих она заявлена - вот в hg она тоже вроде есть. Только оказывается не все символы поддерживаются - если встретит файл с неподдерживаемым символом, то тихо глюканёт, и следующие за ним в очереди файлы и каталоги добавляться в базу никогда не будут, и ты не узнаешь, если случайно не заметишь.
В общем, - Mercury - глючное опасное говно.
Блэт, я хотел чтобы конфликтов в принципе не было, а не продолжать ебаться с разрешением конфликтов на пустом месте
>не нужно читать книги и кучи форумов
просто твой мозг закостенел и не способен воспринимать новую информацию. новое вызывает дискомфорт, неуверенность - у дидов часто так бывает. ну ниче, накати пиваса и посмотри путина по телеку. я пришлю тебе открытку с мальдив
свинья не палится
>философию гита и бранчей читать
Вот есть каталог с кучей маленьких проектов, большинство которых - один файл. Какая нахуй философия, долбоеб? Ты предлагаешь эти сотни файлов каждый в свой каталог засунуть и в каждом отдельную git базу завести? И БРАНЧИТЬ маленькие файлы размером в сотню строчек, а иногда вообще в 10 строк?
Ты у мамы дурачок - так и скажи.
>ничем
А что в гит завезли возможность документирования проекта и багтрекинга?
А если гит/комп/свет глюканет во время работы гита - что будет с базой гита?
github с названием git* в начале и тербования HR на собеседованиях показать проекты на гитхабе всё порешали. Это не значит, что он лучший. Вон PHP тоже стандарт де-факто, но лучший ли он язык?..
>просто твой мозг закостенел и не способен воспринимать новую информацию
пятак, вещи должны быть простыми и эффективными, когда для вката в гит нужно прочитать джве книги это очень и очень плохо.
Тебе время девать некуда больше, чем читать ненужное?
Приши фотку как тебя там в жопу ебут с твоей мамашей
учись код организовывать как белый человек, а не крепостная пидорашка. ну и для монорепов есть решения - гугли
кстати я не хохол - твой детектор говно, неудивительно что ты не можешь гит понять лел
>А что в гит завезли возможность документирование проекта и багтрекинга
Внезапно да, и уже как пару лет
>А если гит.комп.свет глюканет во время работы гита - что будет с базой гита
А нихуя не будет. В самом худшем случае спилишь последний коммит.
так я только вчера твоей мамаше за щеку стрельнул, вылетело из жопы и так родился ты :)
>>053114
вкатываться в любую вещь нужно постепенно. если будешь пытаться осилить сразу на 100% - продуктивность ноль - умрешь нищим не написав ни строчки велосипеда. прочитай про общие возможности чтобы знать что гуглить при случае и врубайся по ходу дела
>>гит ом пользуюсь, но он не устраивает
>не можешь гит поднять
Сразу видно - куришь слишком много марихуаны.
Что за монорепы? Ты новый термин придумал?
Интересно - а как по твоему ещё организовывать сборники мелких утилит?
А то, что в git это не продумали (даже несмотря на наличие GNU утилит) - говорит об их тупоголовости. Git полезен толко для крпных проектов, особенно распределенных между сотрудниками, а на мелких он практически бесполезен.
>вкатываться в любую вещь нужно постепенно.
ой, иди нахуй. ты наверное чтобы посрать сходить, тонны книг прочитал. твой гит не стоит затраченного на его изучение времени.
>Что за монорепы? Ты новый термин придумал?
https://www.google.com/search?q=Monorepo&pws=0&gl=us&gws_rd=cr
ээ ну ты выдал дидуль. ты наверн на анси с еще пописываешь на атлоне под лфс? вобщем я не буду с тобой дальше спорить - боюсь отупею. в биографии черкану про тебя строчку, каким ты был тупым, чтобы потомки знали
А что не так с AMD?
>твой гит не стоит затраченного на его изу
все что тебе нужно сделать чтобы вкатиться это git init, git add, git commit, git push. и гит не мой, а линуса, ну и мне пох, я ж не дегрот
Бамп вопросу, поясните за bare, парни, все уже перечитал, вменяемой инструкции не получил.
>15 лет домашних страничек и интернет-магазинов дилдаков от петровича
>за 15 лет не продвинулся дальше перечисленного говностэка
>никогда не работал в команде
>считает себя "коммерчески" опытным
>при этом приходит в гит тред и выебывается на гит
все таки пидорахи это что-то, откуда вы лезете такие?
>А нет каких-то принципиально новых систем контроля версий?
>К.У.Е
Что имелось в виду, не понял?
Да не, все правильно - git для независимых одиночек, работающих над какими-то общими проектами. Как Linux. Но проекты должны быть расшарены и доступны для форканья. То есть идеология форков или всеобщих проектов типа gnu.
А для работы структурированных компаний git это вобщем-то не совсем то что нужно. Может Fossil здесь получше будет.
Ну а для одиночек, которые никуда ничего не выкладывают git вообще переизбыточен, слишком сложен/запутан/много лишнего и потому не нужен.
Она ближе к децентрализованным.
>сохраняют его аж с 84года
Ну тогда Билли как все остальные сохранял в версии каталогах или архивах, а не в VCS, я уверен.
у тебя sqlite порвался
просто не будь тупым пидорашкой в след раз. а пока сосни макакер крепостной
К слову, fossil поддерживает Zed Shaw, известный по https://learncodethehardway.org/ и http://programming-motherfucker.com/
http://fossilrepos.sourceforge.net/
А, ну, еще sourceforge, но у него вроде репутация стала плохая.
что ты имеешь в виду? в 2017 version control это git - все остальные системы либо легаси либо кал, слепленный одиноким задротом в мамкином подвале, никем не используемый.
ребенок, не рвись так.
> соси хуй быдло руснявое, пиздуй иди документацию и философию гита и бранчей читать
Нет смысла в миллионе бранчей, если они все превращаются в прямую линию мастера и затем удаляются.
Ты же понимаешь, что ребенок стремится быть как все. При этом считает, что понимать не обязательно, разщ дяденьки-тетеньки в рекламе сказали что вещь топовая надо брать, то слушаться, не думая что в реальности это может быть калом.
не, от природы такой. что такое "видеораба"?
>>053867
ого, посмотрите - пошла в ход тяжелая артиллерия угадывания возраста на анонимной борде. может мемчики запостишь еще, взрослый ты мой? я понимаю что в мясокомбинате в алтуфьево, где ты пишешь дрова для говномешалки 99 г выпуска, время остановилось, поэтому не обижаюсь и от ваньки в лаптях многого не ожидаю.
>угадывания возраста
Что там угадывать? Такие как ты умирают не повзрослев. Так что никто ничего не угадывает, - всё очевидно.
Но если интересно, я думаю, ты хипстер шлюха, хотя это и не важно, насекомые мне не интересны.
чини детектор, ванька. 27 лвл, жму 130 и живее всех живых - ржу в лицо деградантам вроде тебя и обоссываю
ладно не ссы я ничего личного не имел в виду, абу разрешил https://www.youtube.com/watch?v=xTfDXA0Bras
1. Можно ли на битбукете иметь свои переменные? Типа ключи хранить или ещё что-нибудь.
2. Какие вообще интересные проекты со свободным участием на битбукете есть?
1. Можно.
2. Есть, но надо искать. Но в основном мелкие проекты, например такие https://bitbucket.org/ArmanHayots/olang
Так и не понял, про что проект.
Если ты про исходники модификации гита то гугли gvfs, там сделано на уровне файловой системы, сам гит всегда думает что выкачал все файлы, но на самом деле они подгружаются по затребованию. Сорцы открыты.
Если тебе интересно когда выложат сорцы шиндошс - иди нахуй никогда.
т.е. человек, который сам не программирует, а лишь УЧИТ это делать? Так себе авторитет.
> Ну а для одиночек, которые никуда ничего не выкладывают git вообще переизбыточен, слишком сложен/запутан/много лишнего и потому не нужен.
С этим соглашусь, но у работодателя часто стали появляться строчки в требованиях, чтобы в резюме была ссылка на твой гит с проектами блять.
> одиночек, которые никуда ничего не выкладывают
> никуда ничего не выкладывают
Таким печь нужна.
Поддвачну >>058870 , конторам как раз меркуриал удобнее. По сути это тот же SVN, только с децентрализацией и прочими плюшками.
Другое дело, что он куда надёжнее. На моей памяти за всё время ни разу не видел ситуаций, которые были с гитом - тот же merge hell или "все используем одинаковые сборки и версии гита, чтобы не было конфликтов". Да, есть непривычные после гита моменты, например можно сливать вместе только по две ветки за раз, нет отката коммита (нужно досылать исправляющий коммит), нет поддержки гитхабом (но bitbucket не хуже, а где-то и лучше), и вообще всё изначально строже - но к этому привыкаешь как к чему-то логичному.
Пф, ты ещё гуру всего нытия Джона Скита вспомни.
Я нахожу фоссил неплохим для личных проектов. Это реально система для одного-пяти человек, без наворотов, но стабильное как камень.
Кто-то говорит, что vcs не все используют
Кто-то говорит, что 100% людей уже сидят на гите (за референсом можно в тред-опросник пройти)
Кто-то говорит, что гит давно устарел и все давно переходят на Bazaar и Fossil
А какое же в действительности распределение? Кто на чем сидит? Пробовал смотреть опросник stackoverflow - так там вообще странная херня - судя по 2017 году все vcs кроме гита вымерли, судя по 2015 году - гит не особо то и продвинулся. Потому что в 2015 году вопрос был с множественным выбором, а в 2017 - с единственным.
Неужели народ, когда говорит, что использует в качестве vcs гит, лукавит - и на самом деле использует несколько разных систем.
Или все просто потому что резюме на гитхабе требуют?
Это как с реляционными базами данных. Они вроде бы не совсем прямо совершенны, где-то сложные, где-то легаси тянется, где-то всё ещё нерешённые проблемы. Однако они покрывают почти 100% потребностей, индустрия пользуется и не мычит.
Но ведь личности, утверждающие что MySQL лучше Oracle, сидят таки с MySQL а не Oracle
Хотел бы я тут видеть этих личностей.
>гит не особо то и продвинулся
в 2015 на вопросы отвечали 26к разрабов, в 2017 64к, т.е. рост около 250%
Это к чему аргумент?
1. Можно ли объединить два коммита с сохранением всех последующих?
2. Можно ли удалить коммит как будто его и не было с сохранением изменений после него?
Поподробнее пожалуйста.
И да и нет.
По факту ты создашь новые коммиты на основе старых (а старые можно будет достать пока GC их не соберет).
Провернут объединение коммитов/схлопывание (squash) и удаление - все это можно сделать интерактивным ребейзом (git rebase -i). Еще можно ручками поиграться с reset --mixed и cherry-pick
>>070506
А ты не pull делай, а fetch
уроки поделал?
git log -1 помог
Начал работать в неправильной ветке, опомнился когда нахуярил 2000 строк говнокода. git stash, git checkout my-branch, git stash pop.
Все верно, у меня на мелких проектах в сотню строк только мастер и все.
Название короче на одну буквы. Других преимуществ нет, одни недостатки.
Я имею ввиду ведение каких-либо заметок или ещё какое-либо версионирование файлов?
Мамонт репортинг ин.
Пользуюсь контролем версий типа копирование папки + винрар. Еще ни разу не подвела. Когда начинаю новый "бранч", переименовываю старую папку с проектом в ~проект ну или ~~проект если уже занято, ~~~проект и так далее. Этакий стэк получается. Удаляю в корзину, соответственно даже если проебался, всегда можно восстановить. Надо только текущую папку переименовать в _~проект.
Каждый день папку архивирую с помощью winrar. Архив автоматом помечается текущим временем и датой, опционально название платформы, там win_ или lin_. Еще можно суффикс с названием фичи, например _joystickInput.
Пробовал эти ваши гиты. Настроили репу, кидали туда только коммиты/пуши, без изъебств с тэгами/бранчами/ребейзами. Через десяток коммитов гит сломался, с супер полезным сообщеним fatal: unable to read 0234mutherfuckinghash. Админ чето то там побегал, погуглил, какие то адовы детективы с бинарным поиском по дереву пропавшего блоба и подсовыванием ему пустышки. Наверное, это нормально для опенсорса, УНВР (у них все работает). Я же с усмешкой разархивировал нужную папку с проектом и продолжил работу.
Работает - не трогай. 7zip уродлив как твоя мамаша, а так бы перекатился.
Не использую, а надо. Пихал заметки, тексты и ноты в гит, но постоянно забывал коммитить и забил.
В схеме с копиями папок/архивов по датам точно так же всегда можно откатиться. И в гите можно случайно удалить. Хуже того, оно может сломаться само и хуй ты его починишь.
Про менеджерские приколы про "взъебывать за косяки" оставлю без комментариев. Взрослые люди исправляют ошибки без пафоса, а не носятся по офису в попытках кого то обвинять.
Вот хуй знает какие у вас проблемы. У нас гитлаб стоит, уже год как работаю тут ничего не ломалось. Дело не в менеджерских приколах, иногда серьезно нужно просматривать код новичков, прежде чем применять их изменения на продакшен. тот же гитлаб например позволяет тебе легко посмотреть разницу между кодом проекта и тем который выкатил программист, не нужно выбирать руками нужные файлики и крутить их до новой строки.
Ну так-то в гите легко случайно затереть рабочую директорию. Алсо, черрипики ебаные бесят суки взять переключиться дрочить гит стопицот команд ебаных
Инструмент для код ревью - это функция редактора с поддержкой diff, такое умеют саблим, vscode, причем тут гит?
Да нет особой разницы, но ртуть чуточку лучше.
Ртуть более логична в коммандах, их тупо меньше и работают он без подводных камней. У ртути есть настоящие ветки, а не богомерзкие поинтеры на голову(в ней аж четыре способа ветвления на все случаи хипстерской жизни, лол). Еще ртуть действительно хранит всю историю изменений и при мердже веток всегда можно узнать откуда конкретно взялся вот этот кусок кода.
У hg есть нормальный гуй под линукс. Есть нормальные подремонтировать (модули)
> working area, stage area
Не знаю точно, но догадываюсь, что это. Прекрасно пользуюсь гитом 5 лет
> наркоман, гитапараша как раз для этих целей и не удобна
Чем это неудобна? Годами пилю проекты в одиночку и никаких проблем не заметил.
Вообще странно, зачем нужен свич m. Сделали бы просто git commit "bla bla bla"
Двачую. Жаль, что гит стал более хайпанутым только потому, что его написал Линус
>что его написал Линус
да всем на этого пингвина похуй, раскрутили это говно для поднятия бабок. лохам же можно и книги и курсы впаривать, и овер 100500 команд
Вангую переусложнение создано на ровном месте, как и всякие NodeJs и прочая хипстота.
>создано на ровном месте
типа того, это как с телефонами, впрочем как и весь маркетинг. пингвин запилил хуету на все случаи жизни, причем ее архитектуру допиливал по ходу пъесы и это только начало.
А все, сделал первый коммит и все нормально.
Как мне переименовать авторов всех коммитов в локальном репозитории?
Скопируй репу целиком и попробуй же.
Как минимум, ты перезаписываешь историю. Это значит, что у всех остальных всё поломается. Или же они должны подтянуть всё со стратегией "похуй на всё".
>Как обезопасить себя от бекдоров, слива инфы и прочего недобросовестного отношения программиста-фрилансера?
Бля, не нанимать долбоебов, вот как! Сразу берешь на работу нормальных людей, экспертов в своей области, пишущих красивый код. Они такой хуйней не занимаются. И даешь им полную свободу в выборе решений. Мне даже не нужны бекдоры, чтобы разъебать твой сайт. Достаточно будет одного нефильтрованного поля для SQL-инъекции, чтобы похерить всю базу данных или залить те вирюсню на сайт. Многие безалаберные кодеры оставляют после себя ТЫСЯЧИ уязвимостей и любой мало-мальски грамотный хакер положит сайт в три секунды.
А насчёт "контролировать правки, вести журнал" и проч. - во-первых неэффективно, так как злонамеренный умысел будет сложно доказать (а чё я прост не знал что поле надо фильтровать!). А во-вторых, нормальный программист гиперконтроль не любит и съебуется тут же от таких, ибо не тебе его учить жизни. И твои "вот тут поменять кнопку" нахуй не нужны, ибо кого ты учишь? Он там может в 2000м получил корку веб-мастера, а ты втираешь ему какую-то дичь.
"Слив инфы" - тут без комментариев, обычный говносайт никому особо не нужен. Хороший, годный код нужен. Сорцы фейсбука, твитора нужны. А сорцы сайта какого-нибудь СтройИзбаПромТеха даром никому не нужен.
веб-фрилансер
А можно заставить гит не записывать время коммита? Я сейчас подумал - что-то слишком дохуя инфы же. Можно по времени коммитов биоритмы вычислять, заказчики-начальники могут увидеть, почему я срок проебал\сонный весь день ходил, можно даже отслеживать передвижения, если таймзоны меняются. Паранойя. Зачем ему вообще время?
>Можно по времени коммитов биоритмы вычислять
Ты еще скажи: написать нейронку по токсичности комментариев определяющую критические дни у разработчик. Правда с монетизацией могут быть проблемы - фидбеком в виде простой благодарности от мужиков сыт не будешь, увы.
не страдай фигней
Из всего списка не пользуюсь только rebase и cherry-pick. Может кто-нибудь из адекватных в треде объяснит просто зачем они нужны? Первый насколько я прочитал для того чтобы типа была читаемая история коммитов, но можно проебаться и при ребейзе в ремот люди потеряют часть своего кода. Везде советую т просто мерджить ветви крч. Просто жизненные ситуации, где мне может пригодиться ребейз?
Вообще говоря, тебе лучше гайдов на тему поискать. Но я могу попробовать объяснить.
Работаешь ты такой на ветке, где ещё много людей тусит (master). Запилил такую фиговину мелкую, пушишь на remote, а там кто-то уже в master коммит сделал. Можно remote-ветку вмержить в локальную, запушить ещё раз. Вместо этого можно rebase сделать, тогда локальная ветка будет выглядеть так, будто ты свои коммиты уже после коммитов того чувачка сделал. Такую ветку уже можно запушить.
Ну cherry-pick полезен бывает полезен, если ты пофиксил что-нибудь на одной ветке и при этом понадобилось этот же фикс в другую перенести. Или перенести фикс с одного удалённого репозитория на другой.
1) Rebase.
Ситуация 1. Тебе не нужно ебучее ветвление в git log'е, и не нужны мерж коммиты. git merge --ff (фастфовад) не всегда это может полечить, насчёт git merge --squash — честно, не знаю. Поэтому если ты слишком рано отошёл со своей фича-веткой от дева\мастера, начал работу и даже накоммитил, и в мастер что-то впихнули — рибейзишь себе дев\мастер.
Подвид этой ситуации — при git pull, который есть git fetch origin (допустим) + git merge origin (допустим) ты тоже не хочешь мерж коммит. Делаешь всегда git pull --rebase.
Ситуация 2. Ты мержишь к себе ветку и охуеваешь от количества конфликтов, не понимаешь, откуда они взялись. Чтобы разобраться в этом, ты можешь абортнуть мерж и сделать рибейз. Гит поэтапно будет коммит за коммитом показывать, где образовывались конфликты. Править их в итоге удобней, пожалуй, после мержа, но рибейз поможет разобраться.
1.1) Interactive Rebase. Вообще божественная команда, попробуй ещё захочешь. Допустим, ты сделал два коммита, и понял что их можно слить в один. Вызываешь git rebase -i head~3 (head~3 – основание, откуда идёт операция интерактивного рибейза). Коммиты отобразятся в немного необычном порядке, можешь открыть второе окошко терминала и сравнить с git log. И ты можешь влить самый молодой коммит в коммит постарше, написав f (fixup) или s (squash) напротив молодого. Всегда вливай молодой коммит в старый, не наоборот.
Или же ещё ситуация с интерактивным рибейзом. Допустим, ты работаешь в фича-ветке, отправил код на ревью и продолжаешь в ней же работать. Сделал коммит раз, работаешь дальше. Сделал коммит два. Вдруг посоны присылают замечание. Фиксишь его, коммитишь, хочешь запушить в ремоут это исправление. Но вот незадача, git push пушит ветку целиком. Тогда ты вызываешь git rebase -i head~4 (сбился со счёта, но идея должна быть понятна) и перемещаешь этот последний коммит (просто перетаскиваешь строчку) следующим за последний коммитом, который уже лежит в ремоуте. Подтверждаешь рибейз и делаешь git push origin <хэш фикса>:feature/hunta. Всё! Нужный коммит с фиксом запушен, остальные два лежат локально.
2) cherry-pick
Ты узнал, что коллега васян в своём форке сделал доработку, которая облегчит тебе жизнь, и даже о чудо оформил её в отдельный коммит. Добавляешь ремоут git remote add vasyan <URL репы>, git fetch --all, git log vasyan/feature/hunta, и далее git cherry-pick (хэш коммита с фиксом). Всё! Ты забрал себе только нужный коммит.
Ах да, интересная инфа. "deleted by us/them" допустим. Имеют разные значения для мержа и рибейза.
1) Rebase.
Ситуация 1. Тебе не нужно ебучее ветвление в git log'е, и не нужны мерж коммиты. git merge --ff (фастфовад) не всегда это может полечить, насчёт git merge --squash — честно, не знаю. Поэтому если ты слишком рано отошёл со своей фича-веткой от дева\мастера, начал работу и даже накоммитил, и в мастер что-то впихнули — рибейзишь себе дев\мастер.
Подвид этой ситуации — при git pull, который есть git fetch origin (допустим) + git merge origin (допустим) ты тоже не хочешь мерж коммит. Делаешь всегда git pull --rebase.
Ситуация 2. Ты мержишь к себе ветку и охуеваешь от количества конфликтов, не понимаешь, откуда они взялись. Чтобы разобраться в этом, ты можешь абортнуть мерж и сделать рибейз. Гит поэтапно будет коммит за коммитом показывать, где образовывались конфликты. Править их в итоге удобней, пожалуй, после мержа, но рибейз поможет разобраться.
1.1) Interactive Rebase. Вообще божественная команда, попробуй ещё захочешь. Допустим, ты сделал два коммита, и понял что их можно слить в один. Вызываешь git rebase -i head~3 (head~3 – основание, откуда идёт операция интерактивного рибейза). Коммиты отобразятся в немного необычном порядке, можешь открыть второе окошко терминала и сравнить с git log. И ты можешь влить самый молодой коммит в коммит постарше, написав f (fixup) или s (squash) напротив молодого. Всегда вливай молодой коммит в старый, не наоборот.
Или же ещё ситуация с интерактивным рибейзом. Допустим, ты работаешь в фича-ветке, отправил код на ревью и продолжаешь в ней же работать. Сделал коммит раз, работаешь дальше. Сделал коммит два. Вдруг посоны присылают замечание. Фиксишь его, коммитишь, хочешь запушить в ремоут это исправление. Но вот незадача, git push пушит ветку целиком. Тогда ты вызываешь git rebase -i head~4 (сбился со счёта, но идея должна быть понятна) и перемещаешь этот последний коммит (просто перетаскиваешь строчку) следующим за последний коммитом, который уже лежит в ремоуте. Подтверждаешь рибейз и делаешь git push origin <хэш фикса>:feature/hunta. Всё! Нужный коммит с фиксом запушен, остальные два лежат локально.
2) cherry-pick
Ты узнал, что коллега васян в своём форке сделал доработку, которая облегчит тебе жизнь, и даже о чудо оформил её в отдельный коммит. Добавляешь ремоут git remote add vasyan <URL репы>, git fetch --all, git log vasyan/feature/hunta, и далее git cherry-pick (хэш коммита с фиксом). Всё! Ты забрал себе только нужный коммит.
Ах да, интересная инфа. "deleted by us/them" допустим. Имеют разные значения для мержа и рибейза.
Спасибо, вроде немного понял. Но нужно поэксперементировать одному прежде чем в офисе выебываться. У нас используют только слияние ветвей. Если кто-то сделал пуш в рабочую ветку до тебя соответственно делается git pull, на локале появляются изменения с удаленного репозитория, правятся конфликты если такие есть и потом делается коммит и пуш ветки. Постараюсь разобрать интерактивный ребейз.
>>100688
Тебе тоже спасибо. cherry-pick позволяет грубо говоря забрать кусок кода который оформлен отдельным коммитом с одной ветки на другую, будь то удаленная ветвь какого-нибудь васяна уже на ориджине, или твоя локальная я правильно понял? Если так - полезная вещь.
>>100702
Все еще хранишь код по папочкам с датами? Или по FTPшке выкачиваете с пацанами весь проект каждый раз перед тем как залить обратно. У меня есть пару проектов без гита на работе. Ммм это бесценное чуство, когда ты не знаешь актуальна ли твоя копия на локале или нет, а качать лень поэтому ты просто перекрестившись аплоадишь файлы с автозаменой.
наркомания.
> Если кто-то сделал пуш в рабочую ветку до тебя соответственно делается git pull, на локале появляются изменения с удаленного репозитория, правятся конфликты если такие есть и потом делается коммит и пуш ветки
Вот как раз если ты сделал коммит и само собой не пушил — в этой ситуации поможет git pull --rebase. Если нет конфликтов — то всё он сам разрулит. Если есть — разрулишь их, и ёбаного мерж коммит месседжа не будет.
> будь то удаленная ветвь какого-нибудь васяна уже на ориджине, или твоя локальная я правильно понял?
Именно. Нужно будет только добавить и сфетчить ремоут ветку. После черрипика её можно удалить, git remote remove vasyan
git yoba -zdrloy -krasivo -popacansci
>Вот как раз если ты сделал коммит и само собой не пушил — в этой ситуации поможет git pull --rebase. Если нет конфликтов — то всё он сам разрулит. Если есть — разрулишь их, и ёбаного мерж коммит месседжа не будет.
Жизненно, обязательно попробую завтра и посмотрю что будет на графе.
Обязательно! Вообще это всё круто пробовать, если просто не сцать и в моменты когда в чём-то сомневаешься делать копию локальной ветки, просто git branch xyi.
Если ты даже как-то проебёшь локальную ветку (в ходе любой операции), то сможешь переключиться на копию и поставить её глядеть на ремоут, git branch --set-upstream-to xyi origin/foo. Тогда она локально будет xyi, а удалённо останется для всех origin/foo.
Ещё есть спасательная (ни дай Торвальдс, чтобы она пригодилась) команда git reflog... Просто выводит всю историю, с ней можно делать что угодно — смотреть, эпплаить, черрипикать, изготавливать из неё патчи и т.д.
Самое хуёвое, что можно сделать — это зачекаутить обратно файл(ы), в который ты уже вносил изменения, и ты их никогда не стэшил а они тебе вдруг нужны — например, git checkout -- file.sh или git checkout . (точка или -A). Тогда даже рефлог бессилен.
Не понял, как, зачем что ета вообще? Я хочу иметь обычный воркфлоу, просто не хочу, чтобы у коммитов было время. Например, пусть они все будут записываться со временем 00:00. Я так понимаю, можно через фильер-бранч это переписывать пост-фактум, но может есть какой-то более простой способ?
>>100640
Да, иди нахуй.
> Ситуация 1.
Нахуя? Все просто пуллят-мерджат, в чем проблема вообще, что это решает?
> не хочешь мерж коммит
Тебя в детстве мерж коммиты покусали? Что в этом плохого, нахуя?
Решительно не понимат. У тебя просто фетиш какой-то или это реально для чего-то нужно?
>Ситуация 2.
>Править их в итоге удобней, пожалуй, после мержа, но рибейз поможет разобраться.
Ну то есть сам по себе рибейз все равно получается ненужен?
> 1.1) Interactive Rebase
Для этого же есть commit --amend, не?
> отправил код на ревью и продолжаешь в ней же работать
Это же неправильно. Зачем так делать?
> ты вызываешь git rebase -i head~4 (сбился со счёта
Это же наркомания какая-то, нет? Зачем эти хаки нужны? Ты делаешь пулл реквест - ребята его смотрят - отправляют тебе обратно. Ты переключаешься туда, фиксишь, делаешь пулл реквест, все повторяется. Ветки для этого и были придуманы.
Зачем эта наркомания с перестановкой коммитов в ветке? Это же как срать, не снимая свитер, не?
>ёбаного мерж коммит месседжа не будет
ДА ХУЛЬ ТЫ ПРИЕБАЛСЯ К МЕРЖ КОММИТАМ?! ГИТ ТАК РАБОТАЕТ, ХУЛИ ТЕБЕ В НИХ НЕ НРАВИТСЯ, ААААААА
>Самое хуёвое, что можно сделать — это зачекаутить обратно файл(ы)
Обжигался на этом, кстати. До сих пор не понимаю, почему оно не загорается красным, не начинает пиликать и кричать во весь голос "ТОБI ПIЗДА" перед тем, как перезаписывать локальные файлы.
>Тебя в детстве мерж коммиты покусали? Что в этом плохого, нахуя?
Вот я хуй знает. Тоже первый раз удивился когда от моего имени на гитлабе появилось тонна кода которого я не писал.
>Нахуя? Все просто пуллят-мерджат, в чем проблема вообще, что это решает?
Ты работаешь в репе с кем-то ещё. почему так получилось — оставим за скобками. Ты сделал коммит. И кто-то запушил в эту ветку. Что произойдёт при попытке пуша? Ошибка. Твой выход — либо резетнуть голова~ и застэшить получившееся, затем накатить мерж (он накатит автоматически фастфовадом), заэпплаить\попнуть стэш, закоммитить заново. Либо же сразу мержить. У тебя в итоге получится два коммита, и мерж коммит. На графе это будет выглядеть как отсоединившаяся и сразу заехавшая обратно ниточка.
А ещё ты можешь закоммитить и сделать git pull --rebase. Тогда у тебя не будет "ниточек" и лишних коммит месседжей, если будут конфликты — он сам всё разрулит.
>Тебя в детстве мерж коммиты покусали? Что в этом плохого, нахуя?
Это засоряет лог работы. А если ты смотришь это в режиме графа, git log --graph – то это более того, может создавать неверное представление о запиливании фичи. Ты можешь отбранчеваться от дева\мастера и пилить фичу, в то время как в дев\мастер что-то подливают. И у тебя будет длиннющее "метро" из-за твоей фичи, которое прервётся со вмерживанием твоей ветки в дев\мастер. Если ты будешь подливать себе мержем дев — "метро" ещё будет наезжать друг на друга. Если же ты будешь подливать себе дев рибейзом, по возможности, т.е. если нет конфликтов (об этом далее) — то ниточка создаст верное представление, чем же твоя фича отлиается от дева\мастера.
>>100820
>Ну то есть сам по себе рибейз все равно получается ненужен?
Если мы говорим о разрешении конфликтов в сильно отставшей ветке — то в итоге ИМХО легче это дело всегда разрешить мержем. Но если у тебя всё настолько разъехалось и пусть ты даже эксперт в кодовой базе и в курсе всех фич, но всё равно не можешь понять, каким образом всё так разъехалось — рибейз тебе поэтапно "расскажет" о конфликтах.
>Для этого же есть commit --amend, не?
Он позволяет удобно переставлять местами коммиты? Объединять их, сливать в один, сразу выбрать несколько и менять их в один присест? А в интерактивном рибейзе это очень наглядно.
>Это же неправильно. Зачем так делать?
Допустим, я вотерфолльно пилю фичу, которую до последнего не буду вливать в дев, чтобы собирали регрессили всё сразу. Я запушил и закинул пуллреквест (из своего форка, или из ориджина, пофиг) с кусочком работы. И хочу продолжать далее с кодом, который только что запушил. Получается, по-твоему я должен разделить ветки на feature/sub_feature_first, закинуть её на пуллреквест, отбранчеваться от неё, пока идёт ревью, в ветку feature/sub_feature_second, и далее работать в ней? Можно конечно. Только тогда в случае правок в первой ветке мне нужно будет её рибейзить во вторую. Нет, можно, конечно, застэшить изменения и отбранчеваться во второй раз в feature/sub_feature_2_1, или же надёргать черрипиками — но что-то такое… А так берёшь и работаешь в той же ветке. Есть замечания и даже если ты уже накоммитил — правишь замечания, интерактивным рибейзом переносишь их ниже, сразу за уже запушенным коммитом, и пушишь только этот коммит с правками по замечаниям. Работаешь дальше(с).
>Ты переключаешься туда
А я не хочу переключаться. Я продолжают работать над этой фичей, просто делаю пуллреквесты размером поменьше.
>Зачем эта наркомания с перестановкой коммитов в ветке? Это же как срать, не снимая свитер, не?
Почему? Если речь идёт о коммите с правкой по замечаниям — то он логически относится к той части работы, которая располагается к историей ниже. Кроме того, чтобы не засорять историю коммитов коммитами-правками — то если НИКТО не работает больше в этой ремоут-ветке — ты имеешь полное право не только передвинуть такой коммит вниз, но и объединить его с последним запушенным в репу коммитом, и запушить его с форсом (только его!).
>Нахуя? Все просто пуллят-мерджат, в чем проблема вообще, что это решает?
Ты работаешь в репе с кем-то ещё. почему так получилось — оставим за скобками. Ты сделал коммит. И кто-то запушил в эту ветку. Что произойдёт при попытке пуша? Ошибка. Твой выход — либо резетнуть голова~ и застэшить получившееся, затем накатить мерж (он накатит автоматически фастфовадом), заэпплаить\попнуть стэш, закоммитить заново. Либо же сразу мержить. У тебя в итоге получится два коммита, и мерж коммит. На графе это будет выглядеть как отсоединившаяся и сразу заехавшая обратно ниточка.
А ещё ты можешь закоммитить и сделать git pull --rebase. Тогда у тебя не будет "ниточек" и лишних коммит месседжей, если будут конфликты — он сам всё разрулит.
>Тебя в детстве мерж коммиты покусали? Что в этом плохого, нахуя?
Это засоряет лог работы. А если ты смотришь это в режиме графа, git log --graph – то это более того, может создавать неверное представление о запиливании фичи. Ты можешь отбранчеваться от дева\мастера и пилить фичу, в то время как в дев\мастер что-то подливают. И у тебя будет длиннющее "метро" из-за твоей фичи, которое прервётся со вмерживанием твоей ветки в дев\мастер. Если ты будешь подливать себе мержем дев — "метро" ещё будет наезжать друг на друга. Если же ты будешь подливать себе дев рибейзом, по возможности, т.е. если нет конфликтов (об этом далее) — то ниточка создаст верное представление, чем же твоя фича отлиается от дева\мастера.
>>100820
>Ну то есть сам по себе рибейз все равно получается ненужен?
Если мы говорим о разрешении конфликтов в сильно отставшей ветке — то в итоге ИМХО легче это дело всегда разрешить мержем. Но если у тебя всё настолько разъехалось и пусть ты даже эксперт в кодовой базе и в курсе всех фич, но всё равно не можешь понять, каким образом всё так разъехалось — рибейз тебе поэтапно "расскажет" о конфликтах.
>Для этого же есть commit --amend, не?
Он позволяет удобно переставлять местами коммиты? Объединять их, сливать в один, сразу выбрать несколько и менять их в один присест? А в интерактивном рибейзе это очень наглядно.
>Это же неправильно. Зачем так делать?
Допустим, я вотерфолльно пилю фичу, которую до последнего не буду вливать в дев, чтобы собирали регрессили всё сразу. Я запушил и закинул пуллреквест (из своего форка, или из ориджина, пофиг) с кусочком работы. И хочу продолжать далее с кодом, который только что запушил. Получается, по-твоему я должен разделить ветки на feature/sub_feature_first, закинуть её на пуллреквест, отбранчеваться от неё, пока идёт ревью, в ветку feature/sub_feature_second, и далее работать в ней? Можно конечно. Только тогда в случае правок в первой ветке мне нужно будет её рибейзить во вторую. Нет, можно, конечно, застэшить изменения и отбранчеваться во второй раз в feature/sub_feature_2_1, или же надёргать черрипиками — но что-то такое… А так берёшь и работаешь в той же ветке. Есть замечания и даже если ты уже накоммитил — правишь замечания, интерактивным рибейзом переносишь их ниже, сразу за уже запушенным коммитом, и пушишь только этот коммит с правками по замечаниям. Работаешь дальше(с).
>Ты переключаешься туда
А я не хочу переключаться. Я продолжают работать над этой фичей, просто делаю пуллреквесты размером поменьше.
>Зачем эта наркомания с перестановкой коммитов в ветке? Это же как срать, не снимая свитер, не?
Почему? Если речь идёт о коммите с правкой по замечаниям — то он логически относится к той части работы, которая располагается к историей ниже. Кроме того, чтобы не засорять историю коммитов коммитами-правками — то если НИКТО не работает больше в этой ремоут-ветке — ты имеешь полное право не только передвинуть такой коммит вниз, но и объединить его с последним запушенным в репу коммитом, и запушить его с форсом (только его!).
>почему так получилось — оставим за скобками
Так а я тебе еще раз скажу, что если у тебя "так получилось", то ты изначально все делал неправильно. Ну то есть получается, что сам создал проблему - сам ее решил. То есть таки ненужно. Я не спорю, бывают какие-то исключительные ситуации, но в таких случаях всегда можно погуглить. То есть в повседневной работе ребейз НЕНУЖЕН?
> Это засоряет лог работы.
Но по идее в логе же как раз нужно видеть те моменты, когда ты подлил себе изменения из мастера, разве нет? Если у тебя какая-то долгоиграющая ветка (хотя долгоиграющих веток по идее не должно быть у тебя, они должны быть на римоуте), то чтобы видеть реальную историю изменений, все подливания в нее мастера должны быть видны, не? А если у тебя не долгоиграющая ветка, а тебе просто нужно утащить хотфикс из мастера, то ты его черрипикаешь, об этом ты и сам писал.
>>commit --amend, не?
> Объединять их, сливать в один, сразу выбрать несколько и менять их в один присест?
Ну это же опять какая-то наркомания. Как будто заняться мне больше нечем, кроме как коммиты переставлять, э? Типичный сценарий: ты сделал коммит, работаешь дальше, готовишься делать следующий коммит и тут осознаешь, что облажался с прошлым коммитом и чего-то недокоммитил. Делаешь аменд, потом делаешь новый коммит, все. А переставлять коммиты нахуя надо, а?
> Получается, по-твоему я должен разделить ветки на feature/sub_feature_first, закинуть её на пуллреквест, отбранчеваться от неё, пока идёт ревью, в ветку feature/sub_feature_second, и далее работать в ней?
Ну да, блядь, гит же для такого воркфлоу и задуман, ветки именно так и работают, не? Плюс повторюсь, если у тебя какая-то долгая фича, то она не должна быть в локальной ветке.
> Только тогда в случае правок в первой ветке мне нужно будет её рибейзить во вторую.
Не понял, зачем? Если твой пулл реквест отфутболили, то ты переключаешься обратно, фиксишь, отправляешь. Если там еще какие-то изменения залили, делаешь пулл-мердж и т.д. Ну блин, все как и с мастером.
> А я не хочу переключаться.
Ну я ж говорю, получается, что выдумываете себе проблемы на ровном месте, просто потому что НИХАЧУ. Не понимат.
>почему так получилось — оставим за скобками
Так а я тебе еще раз скажу, что если у тебя "так получилось", то ты изначально все делал неправильно. Ну то есть получается, что сам создал проблему - сам ее решил. То есть таки ненужно. Я не спорю, бывают какие-то исключительные ситуации, но в таких случаях всегда можно погуглить. То есть в повседневной работе ребейз НЕНУЖЕН?
> Это засоряет лог работы.
Но по идее в логе же как раз нужно видеть те моменты, когда ты подлил себе изменения из мастера, разве нет? Если у тебя какая-то долгоиграющая ветка (хотя долгоиграющих веток по идее не должно быть у тебя, они должны быть на римоуте), то чтобы видеть реальную историю изменений, все подливания в нее мастера должны быть видны, не? А если у тебя не долгоиграющая ветка, а тебе просто нужно утащить хотфикс из мастера, то ты его черрипикаешь, об этом ты и сам писал.
>>commit --amend, не?
> Объединять их, сливать в один, сразу выбрать несколько и менять их в один присест?
Ну это же опять какая-то наркомания. Как будто заняться мне больше нечем, кроме как коммиты переставлять, э? Типичный сценарий: ты сделал коммит, работаешь дальше, готовишься делать следующий коммит и тут осознаешь, что облажался с прошлым коммитом и чего-то недокоммитил. Делаешь аменд, потом делаешь новый коммит, все. А переставлять коммиты нахуя надо, а?
> Получается, по-твоему я должен разделить ветки на feature/sub_feature_first, закинуть её на пуллреквест, отбранчеваться от неё, пока идёт ревью, в ветку feature/sub_feature_second, и далее работать в ней?
Ну да, блядь, гит же для такого воркфлоу и задуман, ветки именно так и работают, не? Плюс повторюсь, если у тебя какая-то долгая фича, то она не должна быть в локальной ветке.
> Только тогда в случае правок в первой ветке мне нужно будет её рибейзить во вторую.
Не понял, зачем? Если твой пулл реквест отфутболили, то ты переключаешься обратно, фиксишь, отправляешь. Если там еще какие-то изменения залили, делаешь пулл-мердж и т.д. Ну блин, все как и с мастером.
> А я не хочу переключаться.
Ну я ж говорю, получается, что выдумываете себе проблемы на ровном месте, просто потому что НИХАЧУ. Не понимат.
>ты изначально всё делал неправильно
Будто на репе один человек работает.
Я не вчитывался особо, но такое ощущение, что вы подвержены каким-то мантрам и сторонним мнениям. Git - это в первую очередь инструмент, решающий проблемы. Если есть способы и оба работают одинаково хорошо, то я выберу тот, который мне удобен или к которому я по-утиному привык. И уж точно не буду по приказу царя из-за бугра свой стиль работы менять и отсеивать альтернативы, потому что царь не хотел бы, чтобы так работали или царь сказал, что нинужна.
мимо
Нет ты.
нет. 99% людей говноеды.
сука, это пиздец. Ребята, это просто пиздец. Я отказываюсь верить, что такие дауны существуют в айти. У меня стадия полного непринятия....
Зачем, почему, для чего? В чем суть? Что ты всем этим пытаешься доказать? Нахуя хранить 100500 папок\подпапок\папок под залупой , нахуя подвергать себя такому риску? Ты понимаешь, что если наебнется жесткий, то твоя работа нескольких месяцев, а то и лет к хуям полетит?
>Настроили репу, кидали туда только коммиты/пуши, без изъебств с тэгами/бранчами/ребейзами. Через десяток коммитов гит сломался, с супер полезным сообщеним fatal: unable to read 0234mutherfuckinghash.
я не представляю, до чего надо быть тупорылым, чтоб не мочь нормально работать с гитом. Серьезно - коммит, потом пуш, если есть необходимость. Чтоб скачать себе - апдейт. При этом это все в определенной ветке. Как можно в этих трех соснах заблудиться?
>Админ чето то там побегал, погуглил, какие то адовы детективы с бинарным поиском по дереву пропавшего блоба и подсовыванием ему пустышки.
нахуй вы админа вообще приплели к тому, что сами не в состоянии сделать элементарщину? Он небось про себя с вас ржал, я уверен.
Судя по его охуительной истории, ничего у них не ломалось, они просто дауны. Я НИЧИВО НЕ ТРОГАЛ ОНО САМО, из этой серии.
>Пропущено 332 постов, 16 с картинками. Нажмите ответ, чтобы посмотреть.
>ctr+f не выдает ничего по gitkraken
Товарищи винрарщики, это ваш шанс. Кракеном можно пользоваться с айкью начиная от 80. Даже 60-летние освоят.
>Кракеном
тортилы, кракены-хуякены. вы там гитодауны вобще ебанулись. скоро должность появится "шпециалист по подбору гитпараши"
Кстати, спасибо. А то гномовцы ебанулись и расхуярили мне мой гитг, а иногда хочется на картинки посмотреть.
Блядь, сука, пиздец. Говно ебаное, ты, блядь, мудила хуев, сука, пиздец блядь! Ебаное говно, ебаное говно! Пиздец! Пиздец! Пиздец!
Оно грузится полминуты, отжирает полгига памяти, а потом просит - наберите побольше воздуха - ЗАРЕГИСТРИРОВАТЬСЯ! И не запускается без регистрации! Я просто хуею, куда мы нахуй катимся? Все ебанулись, да? Пиздец просто, это какой-то розыгрыш нахуй. Ебаный пиздец. Я хуею. Пиздец.
>>106516-кун
Но кракен же в шутку был создан, это не профессиональный инструмент, облейтесь соляной кислотой кто так не думает.
>Но кракен же в шутку был создан
https://www.gitkraken.com/pricing
>>106615
>это не профессиональный инструмент
https://www.gitkraken.com/pricing
>>106615
>облейтесь соляной кислотой кто так не думает.
https://www.gitkraken.com/pricing
Кыш, быдло.
Ну и хули, кто-то через vim кодит? Ах да, причем тут гит?
УНИЧТОЖИЛ ГИТ КАК СИСТЕМУ КОНТРОЛЯ ВЕРСИЙ
Прикольно конечно, но проблема все-таки не (только) в самом гите, насколько я понял. Тут скорее вопросы к терминалам в целом.
Тебе нужен шаблон класса:
Контейнер<Вкладка>
То есть:
LinkedList<Price>
Или:
FrameWindow<ClientArea>
вот как-то так.
Причём, это не должно быть множественным наследованием, а именно контейнер и вкладка.
В случае для git вижу два варианта: для добавления внешних зависимостей использовать либо submodule, либо subtree.
Вот здесь можно почитать о подводных:
https://habrahabr.ru/post/75964/
Иди проспись, дебил.
>>110129
Сабмодули, конечно, нахуй, а вот про сабтри я не знал, спасибо. Впрочем, все равно неудобная херота. Я все-таки склоняюсь к тому, чтобы тупо поставить симлинк и молиться, чтобы не понадобилось откатываться в одном из репозиториев забить. В конце концов, можно будет создать в основном репе ветку для второго репа (который с симлинком) - костыльно конечно, но зато меньше лишних движений.
Подводные простые: один проект будет постоянно сломан, пока ты не интегрируешь в него изменения в либе.
Если ты не религиозный гитоеб, возьми hg, у него субрепозитории удобнее.
По-хорошему надо оформить этот кусок кода в библиотеку и в сборщике основного проекта требовать, чтобы эта библиотека была установлена. Сабмодули, сабрепозитории - это все попытки срезать угол.
>костыльно конечно, но зато меньше лишних движений
Раз не хочешь сабтри, то молю: задокументируй хотя бы, для будущего тебя бедолаги которому потом это говно поддерживать.
Так мне по сути и не нужны субрепозитории... Строго говоря, сабтри - это вроде как раз то, что нужно (но не очень удобно). Мне бы конечно вообще хотелось, чтобы вцс могла тупо игнорить тот факт, что симлинки - это ненастоящие фолдеры, и индексировать контент как обычно.
>>110172
См. изначальный пост: >>109935
>>110193
Та это же ВРЕМЕННО! йоба.пнг
Занятный тутор, вроде ничего плохого в git subtree нет только отдельная либа лучше, даже удобно.
https://medium.com/@v/git-subtrees-a-tutorial-6ff568381844
Го отвечать что используем копирование на сетевую шару и ломать статистику.
Спасибо, бро. Я так-то не выебываюсь, просто не знаю нихуя. Если ты встречал - скинь пару примеров за щеку использования гита для текстовых работ с версиями.
Ну, допустим статья, хоть в ворде, на несколько глав, по результатам обсуждения народом и добавлений от себя будет меняться содержимое.
Хочется, чтобы отображались версии, хранилась история этих версий и можно было видеть обсуждения (которые, например, привели к изменению), и была доступна единая ссылка, которая не меняется от изменения содержимого. Тащемта, википедия, но хочется пока примеров поглядеть помимо неё.
хуй знает, я наверное, очень везучий - ни разу не сталкивался с таким.
Вы там совсем китайское говно покупаете что ли и работаете в подвале завода с питанием от старого дизельгенератора?
Спасибо.
Cдуру можно и х*й сломать. Другими словами, чтобы потерять unstaged changes надо хорошо постараться.
Чего стараться-то? Делаешь случайно ресет лишнего файла - и все, готово. Или чекаутишь, как анон выше.
Ты не знаешь как работает чекаут. Локальные изменения переносятся в переключаемый бранч, либо вся операция отменяется с ошибкой. Чтобы потерять unstaged changes тебе нужно запустить чекаут с флагом --force. От обезьяны, которая не понимает как работает нагугленная со стаковерфлоу команда защиты нет.
Про случайный ресет см. выше.
Год на SVN работал. Перекатился на Git, никакого дискомфорта, только удобнее. Особенно если не косплеить из себя хакира и пользоваться возможностями IDE в управлении Гитом.
Не поверишь. В svn можно даже возможностями IDE не пользоваться. Он просто работает сам по себе, в отличие от говногита.
но вообще-то этот файл был добавлен в коммит. каким образом он мог проебаться при переключении веток. гит просто плюнул в консоль что-то типа "невозможно воспроизвести файл"
>гит просто плюнул в консоль что-то типа "невозможно воспроизвести файл"
Незнаю, но карты Таро намекают на заговор жидорептилоидов. Пока ты тихо-мирно жевал капчу на дваче, клятый ящур изменил индекс твоей рабочей веточки в detached HEAD. Возможен вариант: ты забыл выпить таблеточки, а коммита никогда не cуществовало.
поддвачну мелкобуквенного братишку. git излишне сложный. как можно было такую простую идею, как версионность документов, можно было сделать настолько вредно и неправильно - ума не приложу. напоминает эти репозитории на java, в которых авторы специально делают простые программы очень сложными.
это инженерное позорище. человек сделавший это является не просто некомпетентным, но просто не понимает элементарных азов архитектуры приложений.
линус торвальдс в очередной раз зарекомендовал себя как ничтожный и неумелый программист, "подаривший" миру очердное неуправляемое и поддерживаемое говнище.
Ну у меня TortoiseSVN стоял. Как бы тоже оболочка.
Ну реально Git удобнее, обычно несколько задач висит, одна текущая и багфиксов несколько. Можно переключиться, пофиксить, вернуться. Да и IDE нормальная не даст изменения старые проебать, предлагает stash делать.
>>130307
Тоже через IDE. И rebase, interactive rebase, cherry picking, stash/unstash. Через консоль только несколько специфичных действий делаю, и то не факт, что нельзя через IDE сделать.
IDE от Жидбрейнс. На Eclipse тоже немного пользовался, в принципе тоже самое, только не так приятно глазу. Да и допилить плагинами можно как обычно
gitlab
Потому что гитхаб сделал ставку на комьюнити и звездочки, и битбакет на работу.
Именно поэтому на гитхабе попен сорс разработка, в битбакете работа. Которая отлично со всем остальным стеком атласиана интегрируется.
В том же гитхабе, например, делать код ревью это кровавый пиздец.
>В том же гитхабе, например, делать код ревью это кровавый пиздец.
Вопрос привычки. Одинаково слепнешь от строчечек
>В том же гитхабе, например, делать код ревью это кровавый пиздец.
Поясни, реквестирую кулстори. Чем тебе интерфейс пуллреквестов не нравится?
Зачем делать код ревью в гитхабе? Иде/плагины в vscode - умеют и в раскраску, и в нормальный дифф.
Так-то смотреть открытые пул-реквесты можно через плагины, типа vscode-github, прямо в редакторе. Зачем есть кактус на гитхабе?
Тогда ОК.
> git излишне сложный
Как подобные люди работают в айти, для которых гит сложный. Я в смысле, как они вообше могут в чем торазобраться, если освоить десяток команд чтобы овладеть стандартом индустрии для них сложно.
Нипанятна.
>Или же ещё ситуация с интерактивным рибейзом. Допустим, ты работаешь в фича-ветке, отправил код на ревью и продолжаешь в ней же работать. Сделал коммит раз, работаешь дальше. Сделал коммит два. Вдруг посоны присылают замечание. Фиксишь его, коммитишь, хочешь запушить в ремоут это исправление. Но вот незадача, git push пушит ветку целиком. Тогда ты вызываешь git rebase -i head~4 (сбился со счёта, но идея должна быть понятна) и перемещаешь этот последний коммит (просто перетаскиваешь строчку) следующим за последний коммитом, который уже лежит в ремоуте. Подтверждаешь рибейз и делаешь git push origin <хэш фикса>:feature/hunta. Всё! Нужный коммит с фиксом запушен, остальные два лежат локально.
ты сломал мне мозг
Просто? Почему что то должно быть просто? За это деньги платят. Айти в целом не слишком простое, в том и суть. Нытье про гит сеет зерно сомнения касаемо пригодности человека к профессии.
>Почему что то должно быть просто
потому, что это ебаный архиватор который должен осваиваться за 30 минут и да, я не хочу в этом говне разбираться.
Вообще это система контроля версий для сложных проектов, где один файл может дорабатывать разными разрабами в разных тикетах.
>я не хочу в этом говне разбираться
>Нытье про гит сеет зерно сомнения касаемо пригодности человека к профессии
Что и требовалось. Либо интересно и хочешь разбираться, либо ты хотя бы можешь себя пересилить ради $9999 в секунду.
>пересилить
зачем? я использую fossil и ложил я хуй на гитопарашу. хотя у меня есть пару проджектов продублированных на гитхабе но я пользую гитдесктоп, хотя есть нативная поддержка конвертации fossil<-> git. гит это квинтэссенция того пиздеца, что сейчас твориться в ит, когда простую концепцию и реализацию скатывают в сраное говно. и да, зайди на cоурсфорс и увидь, что многие крупные проекты пользуют cvs.
>я использую
Ты можешь использовать что угодно, это не является показателем чего либо.
В остальном увод темы, речь не велась о том что никто не использует цвс. Просто инструменты нужны под определенные цели, а не для того чтобы их было просто изучить. Докер тоже для тебя слишком сложен? Там жечитать надо документацию и синтаксис знать.
ПРосто обычно преодолевать подобные проблемы и изучать сложные системы и есть основные качсетва девелопера.
А так я же не настаивают и не хочу тебя троллить и тд, юзай что хочешь)
Это Git-то излишне сложный?
Да проще Гита разве что палка-копалка. Есть репы, они могут пуллить друг в друга, есть коммиты, которые диффы, есть бранчи, которые набор коммттов по сути, есть слияние. Есть git-flow, который доступен даже имбецилу, и по которому работает большинство компаний (угадай, почему).
Более того. В отличии от того же Mercurial, в Гите везде защита от дурака. Вообще везде. Если есть малейшая возможность что-то сломать, гит шлёт на хуй.
С меркуриалом я сам работал, и вот его сломать можно легко.
>что это ебаный архиватор который должен осваиваться за 30 минут
Он и осваивается за 30 минут
Я вообще мимопроходил и внезапно оказался в полнейшем ахуе с того, как в казалось бы мертворожденном треде про VCS (это пиздец, тред про VCS, ну давайте ещё треды про клавиатуры/мониторы для кодинга и прочую хуйню сделаем) такое бурное обсуждение, так ладно бы срач между адептами разных СУК, но нет, тут срач между гитоёбами и любителями архивировать винраром. Отечественная специфика, не иначе.
К тому, что я видел выше, хочу добавить пару слов касательно гита, о которых никто не упомянул, хотя это самое важное и вообще гит вокруг этого крутится и ради этого собственно и был сделан, как альтернатива опенсурсной, но централизованной CVS - он сука распределенный
Мудак, сломавший себе базу (если она действительно не по его вине сломалась) не пользовался распределенностью. А ведь разработчики сука старались, внедряли хэши, за каким хуем спрашивается? Да чтобы можно было поломанную базу восстановить, взяв замену коррапченым файлам у вообще какого-то левого хуя, при этом без необходимости ему доверять - просто сверил хэши и всё.
Ещё раз - гит делался с прицелом на распределенность и оффлайновую работу. Когда гит делался, интернет был ни к чёрту у многих, а гит позволял уже тогда красиво клонить репозиторий к себе и спокойно сидеть коммитить. Чтобы можно было не наблюдать за всей разработкой единолично как мразь (это невозможно для крупных проектов вообще), но и в то же время не нужно доверять абсолютно всем разработчикам - если ты главный, просто доверяй кучке давно знакомых кодеров, принимай их пуши, а они в свою очередь могут принимать пуши в свои репы от других челов, которых ты не знаешь, но знают они, и т.д.
Cherry CyMotion, купил разу три, сейчас доламываю последнюю.
> Скиньте какой-нибудь краткий гайд по Git и GitHub.
http://blog.topolyan.com/введение-в-git/
http://blog.topolyan.com/репозитории-git-работа-с-github/
Да я про бинарные ресурсы, а не про исполняемые файлы.
>мертворожденном треде про язык программирования (это пиздец, тред про язык программирования, ну давайте еще треды про VCS, трудоустройство
Подоспели результаты StackOverflow 2018:
1) Git почти доехал до 90%
2) Zip-файлы и сетевые шары в два раза обгоняют Hg
3) Никто не знает про CVS, ClearCase, Perforce
4) Половина народа юзает стоячие столы
Подвезли новость что Microsoft купил Github.
На фоне паники и паранойи никто даже и не вспомнил, что git таки децентрализованная система хранения версий.
Нужно прикрутить к гиту плагин, который будет записывать звездочки в метадату репозитория.
Нет, я серьезно.
>с какими системами сталкивались
SVN,Git
>используете
SVN
>хотите использовать
Да поебать мне. Ещё спроси каким текстовым редактором я пользуюсь, лол.
:)
Но ведь по сути то git это и есть block chain.
Хотя соорудить абстракцию над ней самой это ж так стильно/можно/молодежно
Что не так? Хеш коммита - это SHA-1 от его содержимого, информации об авторе, времени создания и хеша предыдущего коммита. Типичная цепь блоков из начала девяностых
Кстати, а у гитлаба есть аналог github pages?
>>214685
И тут пидоров своих тащат, вот нахуя?
Ненавижу пидоров хотя бы потому что они пидоры, и потому что они испоганили хорошую идею для флага. Радужным флагом пользовались те же индейцы.
>Кстати, а у гитлаба есть аналог github pages?
А то.
https://docs.gitlab.com/ce/user/project/pages/
>мертворождённый тред про VCS
>тред про VCS
>программач
>мертворождённый
>и прочую хуйню сделаем
>треды про трудоустройство, перекат заграницу и зарплаты + баттхёрт-тред
>что-то там лопочет про клавы/моники для кодэнка
>зелёнь триггерится
Сам не являюсь программистом, но волею судеб приходится контролировать сервер на котором крутится наш проект. Программист сделал так - при входе по определенному урлу на сайте создается файл-флаг, наличие которого чекает крон каждые 5 минут. При его появлении крон запускает следующий скрипт
[CODE]
#!/bin/bash
echo $(date)
cd /var/www/html
echo "------git-------"
git pull
echo "------composer---------"
composer install --no-plugins --no-scripts --no-interaction
[/CODE]
Вот. То есть по сути автоматом все. Но. Гит пулл спрашивает пароль от гита все же. И даже если я сделал
>git config --global credential.helper "cache --timeout=3600000"
Он все-равно спросит пароль через пройденное время. Увеличивать время для бесконечности, дабы не вводить его раз в несколько дней в консоли? После перезагрузки сервера для полного бекапа это все-равно сбрасывается.
Как можно сохранить пароль от гита дабы обойти этот запрос пароля?
Поясни вопрос? В ссш никто не влезает вообще, скрипт дёргается кроном, если создан файл-флаг.
С битбакета.
git может пуллить или по ssh или по https. в твоём случае правильное решение -- это сделать ssh-ключ и использовать его для авторизации. неправильное да хуй знает, если git понимает классическую схему https://login:password@hostname:port/repo.git то можно и так, но это колхоз ебучий.
а, ну и если у вас там совсем деградация, то ты можешь в хоум директори того пользователя, от которого делается пулл создать файл .netrc и вписать туда
machine bitbucket.org
login <user>
password <password>
но вот я сейчас это пишу и мне даже отсюда неуютно лол СДЕЛАЙ ЭТО!
>Моя ситуация в целом достаточно нестандартная что ли?
Ну да, стандартно -- это авторизация по ssh ключу
Всё так. Только проектов на fossil мало.
Пидор, верни православный тег трежду!!1
Какой-то хипстер высрал пафосную бессмысленную хуйню.
Ничего нового.
Иммутабельность у него invalidate guarantees of VCS, лол.
>>225282
Кеклики дальше твиттера читать не осиливают. Это цитата, оригинальный автор - Poul-Henning Kamp, разработчик FreeBSD и Varnish.
>Иммутабельность у него invalidate guarantees of VCS, лол.
В оригинале то
A lot of the features Git provides, features which are what makes
it great as a colaboration tool, flies in the face or or directly
invalidates the guarantees you normally expect from a VCS, most
notably progression of time & version, immutability and consistency
of view.
Смысл то обратный, у Git действительно нет гарантий на progression of time& version, immutability and consistency of view - причем by design - хеши коммитов не образуют никакой возрастающей последовательности, любая иммутабельность херится rebase не говоря уже безднах ада, что способен сотворить filter-branch, да и консистентности представления не может - система то распределенная, позволяющая иметь локальные отличия и рассинхронизации куча опций
в .gitattributes, .gitignore, локальные бранчи, работа через git am опять же
Потому Git и позиционируется в первую очередь не как VCS, а как SCM - система управления исходниками ибо для ассетов и артефактов фундаментально непригодна, приходится городить кучу костылей аки lfs, gvfs и прочие artifactory, и весь функционал исходно заточен только под это. Что б поверх гита построить VCS нужно договариваться о главном репозитории origin/master, о версионировании коммитов тэгами и прочем.
Ну ладно, был неправ, уговорил. Кидай сразу ссылки на оригиналы, а не на твиттеры говно-хипстаков, пожалуйста.
> THIS THING DELETED 3 MONTHS OF WORK!!!!
Занимательный случай использования системы контроля версий в vscode.
Прелестно.
> vscode
Сейчас бы использовать вскукарек и тем более гит модуль в нем.
Нормальные пацаны юзают гит баш. Diff-связанные действия дозволительно выполнять в IDE, но желательно не в вскукареке.
Знаю что надо было создавать в девелопе и мержить в мастер. Ну а хуле оно мне дало закомитить в мастер, нахуй короче.
И так, вопрос. Забить хуй или откатить как-то чтобы этот пулреквест откатился?
И по хорошему нужно было новую фичу создавать, потом комитить в девелом и делать релиз с номером веше 0.0.0.1 который добавится в мастер а потом запушить в обе ветки?
Это все потому что source control не нужен
охх и првда, ваша ветка опережает на 1 коммит, надо значит подробнее про ветики поизучать, спасибо.
Меркуриал, как и гит, растёт из монотона, однако меркуриал проектировался с одной стороны ребятами более динамичными и менее энтерпрайзными (и этот тормозной питон мы все жрём), но с другой стороны занятыми именно серьёзными проектами (а не очередной корпоративной хуйнёй, которую потом отдадут в СПО), крутящимися на SVN. Поэтому в меркуриале всё сделано логичнее и правильнее: ветки честные, мёрдж сливает только две ветки за раз, проблемы несовместимости разных версий скорее из области легенд и мифов, высокая консинстентность (отката нет, только досылание корректирующего коммита).
В каком-то плане сравнение меркуриала и гита похоже на сравнение BSD и Linux: первый есть инициатива простых ребят, которым был нужен надёжный рабочий инструмент на скорую руку, а второй — продукт крупных корпораций, несущий больше лозунгов, чем смысла.
Почему? Может наоборот даже распостранять?
Почему, если у меня есть, скажем, две функции, и я удаляю одну из них, то дифф высвечивает, будто я удалил код из середины, с последнюю строки первой и по последнюю строку второй?
Вот https://pastebin.com/vuUpP3rN , если я просто удалю вторую функцию, и git, и gerrit codereview, подсвечивают всё так, будто я удалил строки 5-9, а не 6-10. Почему так? Это какая-то особенность работы стандартный алгоритмом нахождения разницы? Просто из-за этого частенько возникают merge conflict'ы на ровном месте, которых быть не должно (если не удалить, а добавить — он таким же образом может посчитать, что я вставил что-то внутрь этой функции, а не после неё).
Это-то ясно, но вопрос немного в другом.
>отката нет, только досылание корректирующего коммита
Вот это вообще пиздец. Т.е. если я вдруг запушил неправильные изменения, нельзя просто так откатить систему? Это же неудобно -- коммитить исправления там, где можно просто откатить. Минимализм минимализмом, но эта рюшка важна.
Мне чистая история изменений нужна, за "сделал ошиьку и сам её исправил" меня заказчик тупо выебет и не заплатит.
В жопу такие требования, хорошо что в git всё правильно сделали.
Не очень понимаю, что ты имеешь в виду под "git patch", но вот тебе рандомный онлайн дифф сервис, где наглядно происходит то, о чём я говорю — https://www.diffchecker.com/zSKzDnQg
Да хули, это классика. Так оно работает. Забей.
Охуенно не быть тобою.
Вы видите копию треда, сохраненную 18 сентября 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.