Среда, 2 Сентябрь 2009
git: перенести настройки
У меня достаточно сложная “глобальная” настройка git. Сейчас стала нужно делать commit и работать на удаленной машине. Оказалось без настройки не хорошо. Делюсь рецептом по переносу.
У меня достаточно сложная “глобальная” настройка git. Сейчас стала нужно делать commit и работать на удаленной машине. Оказалось без настройки не хорошо. Делюсь рецептом по переносу.
Выкладываю в публичный доступ git c полной историей nginx. Его можно взять у меня, командой:
git clone git://catap.ru/nginx/sysoev.git
Так же он зеркалируется на repo.or.cz, github и gitorious.
В git, в отличии от hg, менять commits местами очень легко и просто. Достаточно сказать
git rebase -i HEAD~3
где вместо HEAD~3 указать коммит с которого начинаем править дерево. Дальше откроется в редакторе текстовый файл с деревом, правя который можно, в том числе, и поменять коммиты руками.
Да, намного приятнее чем в hg ☺
Сижу и думаю, куда повесить себе:
Товарищ, делая коммит, не забывай что тебе потом это отлаживать!
Ввожу для себя правило, что каждый коммит должан собираться и работать, а то надоело уже (да, Саша, ввожу). Как не вытащу коммит он вечно не работает. Устал.
В одно прекрасное утро мы начили использовать расшерение для mercurial которое называется forest. Спуся какое-то время захотелось нам стабилизироваться.
Захотелось мне поменять два commit’а местами. Так получилось что я в серию мелких опечаток вставил изменение функциональности, что несколько мешала отладке.
Иногда, кто‑то по ошибке или невнимательности, кладет в репозиторий файл которого быть там и не должно (скажем debug.log или dump какой. Или что‑то что на самом деле генерируются). С этим можно жить, на самом деле, просто удалив его. Но что делать если файл туда положили достаточно большого объема (скажем 500 mb)? Можно конечно commit сразу убить. А если этот commit живет в репозиторие несколько месяцев?
Пока ехал, подумалось, что у очень многих людей есть притензия к git’у, что у него нет сокращений для комманд (вместо ci приходиться печатать commit). Да, у него этого нет, зато есть офигенный механизм alias’ов:
git config --global alias.ci commit
Случайно наткнулся на очередную scm: codeville.
Не спалось, и решил поиграть в mq. Толком с ним поиграть не получалось очень давно. Тут получилось.