Подтвердить что ты не робот

Git команда архива с битбакетом

Я использую окна, git bash prompt

Я пытаюсь использовать команду архива git с bitbucket

и я получаю сообщение об ошибке: "git upload-archive: архиватор умер с ошибкой"

Любые идеи?

git archive --remote = ssh:// git @bitbucket.org/username/reponame.git --format = tar --output = "file.tar"

Я создал все ключи SSH и открытые ключи и т.д. и даже тестировал ssh -v [email protected], и он отлично работает

4b9b3361

Ответ 1

Вы не можете получить только архив без предварительной обработки дерева - вы хотите получить, когда используете --remote

git archive --remote=ssh://[email protected]/username/reponame.git --format=tar --output="file.tar" master

Будет работать, указывая имя ветки.
Это тоже сработало бы с именем тега.

Однако, согласно этот поток, идентификатор фиксации не будет работать:

Есть ли причина, по которой git-archive требует идентификатор с именем, а не только идентификатор фиксации (или дерева)?

Да; обычно хранилища git не позволяют клиентам получить доступ к произвольным шагам. Вместо этого они требуют, чтобы запрошенные объекты были доступны с помощью ссылки.

git-archive не выполнял должным образом это действие и недавно был изменен, чтобы разрешить только refs по имени, а также поддеревы ref (например, HEAD:subdir/).
Это означает, что мы запрещаем произвольную фиксацию или дерево sha1, даже если это доступно из рекламируемых ссылок.

было бы сложно запланировать git -upload-archive, чтобы использовать идентификаторы?
  Я мог бы использовать теги для ссылки, но в моем случае почти каждая фиксация будет тегом, который кажется расточительным.

Выполнение этого права немного дорого, потому что в общем случае (кто-то запрашивал дерево sha1), нам нужно было бы пересекать каждое дерево каждой фиксации, чтобы увидеть, достижимо ли это.

Мы могли бы реализовать более ограниченный набор правил, позволяя "<commit>:<subdir>" и проверять доступность <commit>.
Это будет запрещать произвольное дерево sha1, но я подозреваю, что это будет охватывать общее (т.е. вы хотите получить дерево или даже поддерево конкретной ревизии).