Expertus metuit
Sergey Stolyarov | 2014-02-17 в 15:20

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

Структура статьи традиционная: знакомство с git, базовые команды, общепринятые подходы, а в конце справка о терминах и концепциях, список ссылок. Я не хочу углубляться в историю создания git и вообще стараюсь писать кратко, по делу и без воды, без слишком детальных объяснений команд, без копипасты манов или книг, однако при необходимости буду давать ссылки на сайты или книги по теме.

Я буду рассказывать только о классической программе git, работающей из командной строки. Все примеры использования предназначены для UNIX-подобных систем, например, линукса или макоси. Все примеры создания или модификации файлов также рассчитаны на UNIX-подобные системы. Почему именно консольный вариант: в гуёвых программах типа TortoiseGit очень сложно понять концепты, их авторы подразумевают, что вы всё уже знаете, а это не так. Почему линукс и макось: терминал в windows очень некомфортен, работать там больно и мучительно. Если у вас Windows, советую поставить убунту в Virtualbox/VMWare, также в комментариях Искандер упоминает git-bash для windows, но я об этом ничего сказать не могу.

Перед вами именно туториал, то есть в идеале вы должны читать его последовательно с начала и до конца, выполняя примеры из текста. У git обширная собственная терминология и куча общепринятых (в рамках git-экосистемы) названий сущностей; я постараюсь рассказать о самых важных из них, а вы постарайтесь их запомнить, они действительно очень важны и пригодятся, когда вы будете читать документацию или книги. Часть терминов я буду давать в переводе (например, «ветка» для слова «branch»), а часть — в транслитерации, так как адекватного перевода слова нет (например, «дифф» как перевод слова «diff»). Я очень не люблю многословные переводы простых слов и стараюсь по возможности ими не пользоваться, для понимания короткие слова важнее длинных фраз. Поэтому привыкайте к словам типа «коммит» или «репозиторий».

В тексте много примеров, они все согласованы с текстом и рассчитаны на параллельное их исполнение в процессе чтения. То есть дошли до примера, открыли терминал, выполнили указанные в тексте команды, порадовались, дальше читаем.

Статья ещё не завершена и будет постепенно дописываться, однако уже написанное радикально меняться не будет.

Sergey Stolyarov | 2014-02-15 в 12:48

Здесь описаны мои текущие настройки и дополнительные программы для расширения функциональности макоси на макбуке.

Обновлено 2015-06-13: теперь всё рассказывается про Yosemite.

Стандартная конфигурация лично мне не особо нравится, плюс выведенными в интерфейс крутилками также не всё можно настроить, поэтому пришлось гуглить и экспериментировать. Чтобы ничего не забылось, традиционно сливаю всё накопленное в один большой пост со скриншотами, который буду держать в актуальном состоянии. Всё описанное касается версии Mac OS X Yosemite (10.10) с английским интерфейсом.

Sergey Stolyarov | 2014-01-29 в 19:37

Пользуюсь браузером Opera, расширения из хромо-маркета.

uBlock Origin (web store)
Очень эффективно режет всю рекламу. Раньше я пользовался Adblock Plus, но uBlock работает гораздо эффективнее и меньше нагружает систему.
Ghostery (web store)
Убирает с веб-сайтов всевозможные трекеры/кнопки, которые воруют данные и тормозят браузинг.
Don't track me Google (web store)
Убирает гугло-редиректы с результатов поиска в гугле.
Put New Tab on the Right (web store)
Открывает новый таб не в конце списка, а справа от текущего, работает также и для открывания ссылок в новом табе.
Close to the left (web store)
После закрывания таба переходит не куда попало, а на таб слева от закрытого.
Stylebot (web store)
Позволяет задавать собственные стили (CSS) для сайтов.
Tab Activate (web store)
Ссылки в новом табе открываются сразу, а не в фоне.
YouTube Center (сайт проекта)
Чрезвычайно полезное расширение, модифицирует ютуб и делает его гораздо более содержательным: увеличивает размер плеера, убирает мешающие блоки справа от видео и ещё кучу улучшений. Расширение в официальный маркет не пускают, можно установить только вручную, ссылка выше.
EditThisCookie (web store)
Позволяет редактировать куки.
Shodan (web store)
Показывает открытые порты и принадлженость сервера/хостинга.
User-Agent Switcher for Chrome (web store)
Расширение, позволяющее переключать User-Agent, причём это можно делать для конкретных сайтов.
Search by Image (web store)
Добавляет в контекстное меню картинок пункт для поиска в гуглокартинках
Sergey Stolyarov | 2014-01-23 в 11:10

Инструкции по разворачиванию LXC на Debian-мащине. Всё рассчитано на Debian Stable (Debian 9 Stretch на момент написания статьи) и версию lxc 2.0.x.

LXC (LinuX Containers, http://linuxcontainers.org/) — это система виртуализации на уровне операционной системы, по сути нечто вроде продвинутого chroot. Удобно использовать для разработки и тестирования софта. Здесь рассматривается работа с lxc только средствами пакета lxc, а другие — например, через libvirt — нет.

Устанавливается традиционно (далее следую традиционному соглашению: если команда начинается с символа #, то она выполняется с правами суперюзера; если начинается с % — с правами обычного юзера; строчки без такого символа в начале являются выводом команды):

# apt-get install lxc
Sergey Stolyarov | 2014-01-21 в 11:45

Очищаем кеши

Очищаем pagecache:

sync; echo 1 > /proc/sys/vm/drop_caches

Очищаем dentry и inodes:

sync; echo 2 > /proc/sys/vm/drop_caches

Очищаем pagecache, dentry и inodes:

sync; echo 3 > /proc/sys/vm/drop_caches

Эта магия освобождает много памяти. Можно запустить free до и после, чтобы убедиться.

Sergey Stolyarov | 2013-12-16 в 21:37

Как использовать curl для отладки HTTP, то есть для отправки на сервер HTTP-запросов. У меня потребности небольшие, поэтому здесь только конкретно нужные мне команды. Оформлено всё традиционно: описание задачи, решение, описание решения.

Отправить GET-запрос и показать ответ вместе с заголовками

curl -Gi http://google.com

Опция -G указывает использовать HTTP GET, опция -i — включить заголовки в вывод.

Sergey Stolyarov | 2013-11-23 в 14:55

Опишу несколько полезных вещей, которые я систематически использую. В основном они касаются организации рабочего пространства и опций конфигурационного файла sublime text 3.

Sergey Stolyarov | 2013-11-18 в 13:45

Обновлено 2016-06-26: инструкция изменена для El Capitan

В стандартной конфигурации (речь дальше пойдёт про Mac OS 10.9 Mavericks и выше) при использовании ssh-ключей во встроенном ssh-клиенте парольная фраза запрашивается через макосный security-фреймворк (и стандартный диалог запроса пароля соответственно). После первого ввода пароля запускается ssh-agent и при дальнейших вызовах ssh или git c этим ключом пароль больше не запрашивается.

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

Sergey Stolyarov | 2013-11-16 в 22:44

Homebrew — клёвая штука, однако она крайне небезопасная в обычном режиме установки — файлы ставятся в каталог /usr/local с правами текущего пользователя, поэтому, если в систему пролезет зловред, он легко сможет изменить очень важные для безопасности файлы в каталоге /usr/local. В homebrew faq очень не советуют ставить brew через sudo, однако там неявно имеется в виду установка с правами суперюзера. Так действительно жить нельзя, поэтому пойдём другим путём — выделим для brew отдельного юзера и отдельную группу, и все операции по установке будем проводить через неё.

Sergey Stolyarov | 2013-08-24 в 21:52

Меня зовут Сергей Столяров, я живу и работаю в Новосибирске, а это мой технический блог, где я пишу преимущественно о программировании и линуксе (а с недавних пор — ещё и о макоси), также в блог попадают статьи о решении разнообразных айтишных проблем, с которыми я регулярно сталкиваюсь (они идут с тегом kb). Ещё на сайте есть переводы англоязычных статей (под тегом перевод).

Блог написан мной на питоне с использованием фреймворка Pyramid. Также в сферу моих профессиональных интересов входят веб-интерфейсы, веб-сервисы, javascript, программная архитектура, управление проектами.

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

У сайта есть RSS: http://blog.regolit.com/rss/latest

Контакты

Мой емейл:
sergei@regolit.com
Jabber:
cancel@regolit.com
Гитхаб:
https://github.com/sigsergv
© 2006—2018 Sergey Stolyarov | Работает на Pyrone