удалить файл git из репозитория, не имеющего локальной копии - PullRequest
0 голосов
/ 13 ноября 2018

работа с git очевидна, когда у вас есть локальная копия репозитория на диске, но иногда возникает необходимость работать только с определенным файлом (файлами) с известного адреса репозитория.

Итак, вот моя цельэто удалить один файл или известный список файлов в данном репозитории - сложная часть заключается в том, что по причинам производительности я не хочу клонировать весь репозиторий на диск.Я использую уже API-интерфейс Bitbucket Server, но, кажется, нет никакого способа сделать это.Конечно, я хочу видеть эту операцию позже в git как коммит.

1 Ответ

0 голосов
/ 13 ноября 2018

Все изменяемые операции git могут работать только на рабочем дереве .Поэтому, если вы хотите сделать коммит, его нужно применить к рабочему дереву.Находится ли этот на вашей локальной машине или где-то еще, равно.Но исполняемому файлу git требуется доступ к файловой системе .Вы не обойдете это ограничение.Даже команды git, которые, кажется, управляют хранилищем напрямую (например, --filter-branch), используют временное рабочее дерево.

Но вы можете ускорить вещей, когда используете мелкий клон (--depth 1), а не полный клон.Это значительно быстрее .

Обратите внимание, что для этого вам нужна достаточно свежая версия git.См. Также здесь: Лучшая поддержка мелких клонов в git 1.9


Другой вариант - создать службу на сервере хранилища, которая выполнит эту работу за вас.Это быстрее, потому что основной трафик теперь локальный .Но, конечно, при использовании стороннего git-сервера, такого как butbucket, это не вариант.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...