2016-01-30 17 views
4

Я понимаю, как настроить разреженный checkout в Git, но мне было интересно, можно ли исключить ведущие каталоги. Например, скажем, у меня есть репозиторий со структурой папок, как так:Git разреженная проверка без ведущих каталогов

  • folder1/Foo
  • folder2/Foo/бар/вещи
  • folder3/другое/Foo/бар/stuff2

И я хочу только содержимое внутри stuff2. Для разреженных проверок этих каталогов, файл .git/info/spare-checkout будет выглядеть следующим образом:

folder3/another/foo/bar/stuff2/ 

Моей проблема после того, как я закончил с редкой кассой, я не см stuff2 или содержимое stuff2 внутри команды корень моего каталога; Я вижу folder3, а затем все подкаталоги, ведущие до stuff2.

Я предполагаю, что ответ на этот вопрос заключается в том, что с Git это невозможно, но я просто хотел убедиться. Это один (и только) поведение SVN, которое я пропустил; возможность запускать svn co https://url.com/myrepo/folder3/another/foo/bar/stuff2 . и загрузить содержимое в текущий каталог.

+0

Что отсутствует в 'git checkout folder3/another/foo/bar/stuff2'? Я, вероятно, не понимаю вопроса ... – Martin

+3

Вопрос не дубликат, и я не получил ответа, насколько я вижу. Вопрос заключается не в том, как делать разреженные проверки (op знает), или как избежать полного клонирования репозитория (--depth 0). Вопрос заключается в том, как избежать получения полной глубокой структуры каталогов при разреженных проверках. Ответ http://stackoverflow.com/questions/180052/checkout-subdirectories-in-git/5394612#5394612 отмечает, что это невозможно, но без объяснения и 5 лет. – Hannobo

ответ

0

Некоторые инструменты, такие как git hub, имеют возможность напрямую просматривать заданную папку. Однако оперировать только одной папки в то время запрещен в мерзавца, как весь репозиторий должен присутствовать, чтобы выполнить хэш новой фиксации и сделать диф для фиксации

Также обсуждается здесь How to git-pull all but one folder

+0

Посмотреть мой комментарий в ответе @ DominicEU –

+0

По моему мнению, у вас есть файлы, которые находятся в git, которые вы хотите поместить в/path/to/config. Я бы проверил содержимое хранилища git где-то постоянным. Затем сделайте символические ссылки на файл в git, разместив ссылки в каталоге/path/to/config. Если это сработает для вас, я могу поместить команды в другой ответ. –

+0

Майк: Технически это наоборот; У меня есть файлы в '/ path/to/config', которые в настоящее время ** не ** в Git. Я создал каталог, в который я хочу поместить файлы '/ path/to/config' (также известный как' stuff2'), но получил описанную проблему. –

0

Короткий ответ - нет. Git видит все файлы как единое целое. Вам все равно нужно клонировать весь репозиторий, в котором будут все файлы.

+0

В моем случае я не прочь проверить весь репозиторий, поскольку он маленький. У меня есть файлы конфигурации на сервере в '/ path/to/config', которые я хочу поместить в' folder3/another/foo/bar/stuff2/'. Проблема заключается в том, что я выполняю разреженную проверку внутри '/ path/to/config', я вижу' folder3'. Если я проверю весь репозиторий, могу ли я его выполнить? –

+1

Несомненно, проверьте [этот ответ] (http://stackoverflow.com/a/4909267/5856415). – DominicEU

+0

Опять же, @DominicEU, это не то, что просил @ScottCrooks. Если вы делаете редкую проверку «far/deep/down/folder/there», вы все равно получите папку репозитория, содержащую '.git' и' far/deep/down/folder/there', но то, что он хочет (я думаю) папка-хранилище с '.git' и' there'. – Caesar

 Смежные вопросы

  • Нет связанных вопросов^_^