LINUX.ORG.RU
ФорумTalks

немного о git'е


0

4

Наверное, это неправильно, что меня так смешит запись Reset Demystified. Если вкратце, то автор книги Pro Git (!), признается в том, что мало написал о команде git reset в своей книге, потому что плохо ее понимал (!!). Но с тех пор он прочитал о ней побольше, и сейчас объяснит ее раз и навсегда, в блог-записи на 17 страниц!

Можно ли придумать более убедительную демонстрацию извращенности и враждебности командной строки гита? У команды git reset, которая потенциально может полностью стереть ваши изменения навсегда, есть три разных подвида, каждый из которых делает совершенно разную работу, и еще один из этих подвидов очень похож на другую команду, git checkout, но только в одном из ее подвидов - другой опять-таки делает совершенно другое! Но ничего, все станет кристально ясно, как только мы изучим полезнейшую сводную таблицу в конце записи:

http://ompldr.org/vY2xkMw/demistified.png

Правда, теперь все понятно?

Давно подумываю освоить какую-нибудь СКВ. Пожалуй, теперь это будет не git %)

GotF ★★★★★
()

Чо, можешь предложить какие-то альтернативы?

stevejobs ★★★★☆
()

Помогите пожалуйста. Вот есть у меня например гит репрозорий, ой т.е. репозиторий и там есть история коммитов 1,2,3,4,5. Теперь значит я хочу чтобы начало истории перенести, например, на состояние 3 коммита, а 1 и 2 вообще потерять из истории. Как ?

Bad_ptr ★★★★★
()
Ответ на: комментарий от Bad_ptr

В меркуриале я просто беру hg transplant и пересаживаю нужные ченджсеты в другую ветку, а потом первоначальную ветку удаляю.

vasilenko ★★
() автор топика

Как сказано в первом же комменте,

--soft -> git uncommit
--mixed -> git unadd
--hard -> git undo

stevejobs ★★★★☆
()

О, предвижу тред неосиляторов git

Pinkbyte ★★★★★
()

хотя конечно, признаю, такая неоднозначность может отпугнуть новичков

Pinkbyte ★★★★★
()
Ответ на: комментарий от vasilenko

ты имеешь в виду cherry-pick или rebase? -)

ох, в hg ведь нет rebase искаропки. Боже, да и transplant тоже нету! Всё надо подключать расширениями в ini-файле, все в машину.

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

Из какой каропки? Они давно входят в комплект.

А вот как мне в гите отключить ненужные команды?

vasilenko ★★
() автор топика
Ответ на: комментарий от vasilenko

не набирать их.

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

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

stevejobs ★★★★☆
()

Всё это довольно забавно, но не идёт ни в какое сравнение с тем, что git clone до сих пор не умеет продолжать ранее прерванную операцию.

geekless ★★
()
Ответ на: комментарий от stevejobs

А чем ещё в гите надо не пользоваться, чтобв полноценно работать?

Вот такой он ваш гит. «У нашего холодильника дверка малость отходит, так её надо тово, тут поднажать, а вот тут не трогать, а то морозилка раскроется и пельмени посыпятся. А зато у него целых три ручки, и все разные! Одна из них даже его открывает!»

vasilenko ★★
() автор топика
Ответ на: комментарий от vasilenko

и вот мы приходим к следующему косяку hg — его неудобно кодить на шелле.

(правда сам я не люблю юниксвей и не отношу это к сильным косякам, зато абсолютное большинство традиционных нормальных людей от необходимости писать скрипты на питоне приходят в неописуемое бешенство)

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

Нет, это git неудобно кодить на питоне.

vasilenko ★★
() автор топика

То, что ты это не понимаешь, вовсе не означает, что это глупо. Просто пользуйся другим инструментом, понятным лично тебе.

post-factum ★★★★★
()

Наверное, это неправильно, что меня так смешит запись Reset Demystified.

Наверное

Можно ли придумать более убедительную демонстрацию

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

У команды git reset, которая потенциально может полностью стереть ваши изменения навсегда

ШОК! ВИДЕО!

А вообще 4.2. Может стереть изменения ровно настолько, насколько комманда rm. Я лично reset --hard использую постоянно, и меня очень радует, что он умеет без вопросов и лишнего шума откатится до прошлого коммита. Плюс для самых продвинутых ССЗБ можно найти данные в рефлоге.

Правда, теперь все понятно?

Да. Спасибо, ты сумел совершенно бесполезным топиком показать кое-что полезное.

unlog1c ★★★
()

А что, man git-reset почитать не судьба?

Deleted
()

Я, кстати, когда выбирал vcs для внедрения на работе, именно начитавшись таких вот разъяснений выбрал ртуть. и ни разу не пожалел об этом. Кто пишет про включение расширений руками, тот видимо на полном серьезе считает, что написать пяток букв в конфиг (rebase=) сложнее, чем прочитать и запомнить сотни страниц манов и десятки ключей.

И кстати, вопрос на засыпку сторонникам подхода «все искаропки»: как вы думаете, почему команды вроде rebase не вносятся в ядро ртути, а оставлены расширением?
(подсказка: в ответе фигурирует фраза «выстрелить в ногу»)

gaga
()
Ответ на: комментарий от geekless

Я уже не помню, как, но я точно докачивал git-репозиторий. Если вспомню как - напишу.

Deleted
()
Ответ на: комментарий от gaga

выбрал ртуть. и ни разу не пожалел об этом

Я тебе больше скажу. Если бы ты выбрал CVS - тоже бы не пожалел. Человеку вообще сложно адекватно сравнить две сущности, если с одной из них он ознакомился «начитавшись таких вот разъяснений»/

unlog1c ★★★
()

ИНТРИГИ!!! РАССЛЕДОВАНИЯ!!!

ай ай ай
6 разных команд внешне похожих друг на друга
это же такой непосильный труд их запомнить
...
facepalm ТС, facepalm

q11q11 ★★★★★
()

<troll>
а ключи типа "-R", которые делают разные вещи в разных консольных прогах, тебя не смущают?

ты кстати не с венды пришёл?
непонятные буковки в консоли часто пугают вендузятников
</troll>

no offence
не нравится - не пользуйся
только вот каким-то странным образом git самая популярная системя в своём роде

q11q11 ★★★★★
()

Это не гит сложный, это жизнь такая.

r2d2
()

Когда я выбирал на что перейти с свн, и выбор стоял в первую очередь между git и hg, я выбрал hg как раз из-за того, что он проще и логичнее (имхо). Функционала для моих микро-задач хватает с головой.

pi11 ★★★★★
()
Ответ на: комментарий от queen3

А баш скоро останется уделом маргиналов.

наглое 4.2

ymn ★★★★★
()
Ответ на: комментарий от post-factum

То, что ты это не понимаешь, вовсе не означает, что это глупо.

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

tailgunner ★★★★★
()
Ответ на: комментарий от Alve

mercurial правильно произносится «я не осилил git»

Git правильно переводится «я снова думаю, что осилил git».

tailgunner ★★★★★
()

reset --keep - самая полезная команда. (Тред не читал.)

Biga
()
Ответ на: комментарий от unlog1c

Возможно. Но понимаешь, я не могу придраться по большому счету ни к чему. Научился с ним работать после cvs за один день, прочитав туториал в вики. Этого мне хватило примерно на два месяца, после чего я прочитал туториал по mq, ман по нескольким расширениям, и теперь функционала хватает с головой. Обучил коллег работать с ним за три дня. Вот я не уверен, что с гитом вышло бы так же, потому что вчера ходил как раз в другую компанию, которые гит внедрить не смогли и остались на свн.

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

gaga
()
Ответ на: комментарий от q11q11

только вот каким-то странным образом git самая популярная системя в своём роде

Уел. Миллионы фанбоев не могут ошибаться.

vasilenko ★★
() автор топика
Ответ на: комментарий от vasilenko

Уел...

а ещё аргументы есть?

фанбоев

что за поганый онемашный слэнг?
ты этих «фанбоев» видел?
дядьки с многолетним опытом работы
наверное они-то уж могут обьективно сравнивать инструменты, в отличии от новичков-неосиляторов, которые неспособны разобраться в шести РАЗЛИЧНЫХ командах

в общем нефиг гнать на софтину, если не умеешь ей пользоваться

q11q11 ★★★★★
()
Ответ на: комментарий от q11q11

что за поганый онемашный слэнг?

ты этих «фанбоев» видел?

дядьки с многолетним опытом работы

Надеюсь, ты не один из них.

И кстати, слово «фанбой» не имеет отношения к аниме.

tailgunner ★★★★★
()
Ответ на: комментарий от q11q11

Мне иногда присылают патчи для одного опенсорсного поделия, оно вообще использует bzr, потому что только он полноценно поддерживает юникод в именах файлов. Регулярно приходят неосилил-репорты от гит-пионеров в духе «Че за bzr? Где у него кнопка 'форкнуть на гитхабе?' Прислать патч на емейл? А это как? Че ты буровишь, переди сам на git, а то нам сложно.» Им даже невдомёк, что на лончпаде есть точно такая же кнопка «создать бранч» и точно так же можно послать merge request, просто о гитхабе им рассказали в твиторе, а про лончпад сказать забыли, это немодно.

vasilenko ★★
() автор топика
Ответ на: комментарий от vasilenko

Лаунчпад это отдельная песня, закомитил у себя, попробовал на него пушнуть, пушнул, захожу на лайнчпад, а он тебе - мол подождите обновление инфомации(или как-то так)... отображается долго. На лаунчпаде инфа о моём комите появилась только через несколько минут. Не комильфо )

xterro ★★★★★
()

Гит ест детей! Шок!

xorik ★★★★★
()
Ответ на: комментарий от gaga

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

На самом деле, я вполне готов согласится, что hg немного «проще», чем git в освоении и использовании. Это вполне возможно. Но для меня есть два фактора, которые с головой перекрывают ту добавочную сложность:

1) github - практически все проекты, за которыми я слежу, находятся там. Если нет - то на кастомных гиториосах.

2) magit - режим для Емакса, с которыми я полностью забыл что такое консольный git. Режим для hg в емаксе совсем не дотягивает.

Но если бы я первым делом наткнулся на hg, то вполне вероятно остался бы на нём и приводил другие аргументы. Поэтому спор бесполезен - освоив один из этих двух практически идентичных инструментов, ни одной стороне не будет целесообразно переходить на другой.

unlog1c ★★★
()

Это всё отлично, но, может, ТС-неосилятор хотя бы приведёт примеры дейсвительно крупных проектов на hg? Или же, вдруг, он сам содержит один из таких проектов?

Lighting ★★★★★
()
Ответ на: комментарий от Bad_ptr

1 и 2 просто так выбросить нельзя - ты ж нарушаешь принцип причинности

VladimirMalyk ★★★★★
()
Ответ на: комментарий от vasilenko

опенсорсного поделия
юникод в именах файлов

а что курят авторы?


Че ты буровишь, переди сам на git, а то нам сложно

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

q11q11 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.