RU EN

Ошибка Could not read from remote repository в docker контейнере

 

Если при попытке подключиться к удалённому репозиторию в docker-контейнере получена ошибка:

git@host.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Нужно убедиться, что publickey загружен в ssh-agent:

ssh-add -l
4096 SHA256:NcKisT6y97VqwskqZ2UPy7Ub6Voc7jzv0fCYYi92X1I /home/user/.ssh/id_rsa (RSA)

Если ключ не добавлен - добавить:

ssh-add /home/user/.ssh/id_rsa

Далее проверить, что переменная $SSH_AUTH_SOCK содержит путь к ssh-сокету и он прокидывается в docker-контейнер:

docker run 
    -e SSH_AUTH_SOCK=/var/run/ssh-auth.sock 
    -v  $(SSH_AUTH_SOCK):/var/run/ssh-auth.sock

Следующий шаг - проверить, что внутри контейнера publickey корректно работает:

ssh -Tvvv git@host.com -p 22222

Если в выводе получена ошибка: send_pubkey_test: no mutual signature algorithm, значит устарел алгоритм по которому генерировался ключ. Нужно либо его перегенерировать использую более современный алгоритм, либо добавить в конфигурацию ssh-клиента опцию принудительного использования ключа с нужным алгоритмом. Например:

Host *
    PubkeyAcceptedKeyTypes +ssh-rsa
Комментариев: 0
16.07.2022 06:02


Создание коммита с заданной датой

 

Для того, чтобы сделать коммит с произвольной датой, можно воспользоваться специальным параметром --date команды git commit:

git commit -m 'Commit with yesterday date' --date="$(date -R --date='1 days ago')"
Комментариев: 0
20.01.2015 19:02


Создание веток для работы с репозиторием

 

Например, понадобилось создать репозиторий без ветки master. Просто так её удалить нельзя, т.к. на неё ссылается HEAD. Переназначить HEAD можно командами:

# Создаём ветку prod из master
git checkout -b prod 
# Делаем ссылку HEAD на prod
git symbolic-ref HEAD refs/heads/prod
# Удаляем локальную ветку master
git checkout prod && git branch -D master
# Создаём в репозитории ветку prod
git push -u origin prod
# Делаем ссылку на HEAD в репозитории
git remote set-head origin prod
# В удалённом репозитории запускаем команду
git symbolic-ref HEAD refs/heads/prod
# Удаляем ненужную ветку master
git push origin :master

Другим пользователям этого репозитория потребуется запустить команду:

git remote update --prune origin
Комментариев: 0
13.01.2015 16:01


Корректная кодировка директорий в git

 

Для того, чтобы корректно отображались utf-8 символы в названиях директорий и файлов, надо изменить ряд настроек в конфиге:

git config [--global] core.quotepath Off
git config [--global] i18n.logoutputencoding utf8
git config [--global] i18n.commitencoding utf8

 

 

Комментариев: 0
18.08.2014 18:12


Настройка gitweb

 

Ширина табов:

Находим в файле gitweb.cgi строчку:

sub untabify {
...
    if (my $count = (8 - ($pos % 8))) {
...

В меняем цифры на нужное кол-во пробелов в табе :

sub untabify {
...
    if (my $count = (4 - ($pos % 4))) {
...

Установка локали:

Находим строчку:

binmode STDOUT, ':utf8';

меняем на:

binmode STDOUT, ':cp1251';

В файл gitweb.conf добавляем переменные:

$fallback_encoding = 'cp1251';
$default_text_plain_charset = 'cp1251';
Комментариев: 0
28.05.2013 14:03