git: unable to create thread: Resource temporarily unavailable

Ситуация: на shared-хостинге, к которому есть доступ по SSH, вертится проект. Для проекта создан локальный и удалённый git-репозитории. В локальном репозитории есть коммиты, не отправленные на удалённый.

Задача: отправить коммиты на удалённый репозиторий.

Проблема: при попытке git push возникает ошибка:

Counting objects: 5009, done.
Delta compression using up to 16 threads.
fatal: unable to create thread: Resource temporarily unavailable
error: pack-objects died with strange error

Примечание: может проявляться в связке с этой проблемой, либо после неё, либо независимо от неё.

Причина: ограничения хостинга, не позволяющие git‘у создать поток и начать отправку коммитов.

Есть целых два решения

git: unable to create threaded lstat

Ситуация: на shared-хостинге, к которому есть доступ по SSH, вертится проект. Количество файлов проекта исчисляется десятками тысяч. Для проекта необходимо создать git-репозиторий.

Задача: добавить в репозиторий хотя бы четверть или треть от всех файлов — наиболее важные.

Проблема: при попытке git status возникает ошибка unable to create threaded lstat

Причина: ограничения хостинга, не позволяющие git‘у обработать список файлов.

Есть целых два решения

Смена кодировки git-репозитория с CP-1251 на UTF-8

Ситуация: изначально все файлы в репозитории были в кодировке cp-1251 (aka win-1251), но в какой-то момент было решено перейти на utf-8. Разработка ведётся на Windows.

Проблема: некорректное отображение кириллицы в оболочке git bash при выполнении команд git log, git diff, git show, etc; белиберда в сообщениях коммитов.

Задача: исправить отображение кириллицы.

Бонус: кириллица будет верно отображаться в GitLab.

Решение

Мои алиасы git

Привет.

В своей работе и pet-проектах я вседа использую git. За годы работы с ним у меня накопился некоторый список частых команд, которые я использую чаще всего. Позже я оформил их в алиасы и теперь представляю здесь. Их очень немного, они в сущности просты и тем круты. Авось тебе тоже чего полезного пригодится.

В сети есть много материалов по этой теме и многие разработчики показывают список алиасов и команд, которые им приходится использовать. Из наиболее интересных — вот эти три.

Я разбил свой список по темам, чтобы было проще воспринимать.

Читать далее Мои алиасы git

Запускаем GIT GUI и GITK на виртуальной машине Битрикс CentOS 6.7

В комплекте с git есть две гуёвые (gui, с графичеким интерфейсом) утилиты. Одна вызывается по команде git gui и позволяет работать над текущим коммитом: управлять индексом файлов, просматривать изменения, делать, собственно, коммиты (в т.ч. amend), push и pull изменений мержить ветки… Ну, думаю, тут понятно: стандартный ежедневный функционал.

Gitk же даёт возможность просматривать истории веток, изменения в коммитах и вообще всю информацию по ним. Удобная штукенция для любителей ткнуть мышкой и получить кучу полезной инфы вместо набора команд в консоли.

В сущности, конечно же, эти утилиты полностью повторяют функционал git’а консольного (иначе это было бы странным): gitk это git log —graph, а git gui объединяет команды merge, commit, pull, push и так далее.

Когда я об этом узнал, сразу, конечно, заинтересовался как такое можно провернуть на битриксовском виртуальном сервере, который вертится в VirtualBox на CentOS 6.7 безо всяких графических оболочек. Гит для меня вообще штука относительно новая, я пользуюсь им (если глянуть по первым моим коммитам) с 13 марта сего года исключительно в консоли (если быть точным, то через SSH в PuTTY, о чём в конце). Были некоторые проблемы с мержем и синхронизацией коммитов с удалённым репозиторием, но всё решалось успешно, да и шишек набить успел, что хорошо.

Тут я вкратце поведаю как установить запустить на виртуальной машине Битрикс-сервера… то есть на CentOS графическую оболочку и пощупать заветные git gui и gitk.
Следует сначала дочитать сей опус до конца, а не выполнять действия по ходу первого чтения.
Читать далее Запускаем GIT GUI и GITK на виртуальной машине Битрикс CentOS 6.7