четверг, 9 апреля 2015 г.

git - ошибочный коммит

Что делать если в пуш попали лишние изменения

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

git log -p <file>

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

git reset <commit> <file>

<commit> - предыдущая версия по отношению к той, в которую попали нежелательные изменения

После этого на диске появится измененный файл и за-stage-ный файл. Нужные нам изменения лежат в stage.
Поэтому надо сделать следующее:

git checkout -- <file>
git reset HEAD <file>

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

четверг, 29 мая 2014 г.

Роутинг в express с помощью urouter

Стандартный роутинг express мне не очень понравился, поскольку имеет ряд недостатков:
  • неудобное описание именованных роутов (в express именованные роуты описываются с помощью объектов, что лично мне показалось очень неудобным);
  • отсутствие бриджей-префиксов (чтобы не писать в начале десяти роутов /admin);
  • необходимость создавать переменные, в которые надо помещать все бриджи роутов;

пятница, 27 декабря 2013 г.

Важность описания интерфейсов функций

Сегодня, прочитав статью http://habrahabr.ru/post/207390/, удивился тому факту, что автор не сказал ни слова об описании интерфейсов функций. Я просто не мог оставить этот факт без внимания, поскольку лично мне уже набила оскомину проблема отсутствия описания интерфейсов функций в коде.
Если вы пишете на строготипизированном языке, то у вас нет проблем с тем какого типа параметры функция принимает и возвращает. Это все есть прямо в описании функции. 

int addition (int a, int b) {
    return a + b;
}