Как получить только корневой каталог (и другой подкаталог) при выполнении git-архива - PullRequest
0 голосов
/ 17 октября 2019

Я хочу использовать git-архив, чтобы получить подмножество хранилища. например, предположим, что это макет репо

foo.js 
blah.sh
subdir/
   whatever.js
   morestuff.js
subdir2_which_contains_A_LOT_of_stuff/
   whatever.js
   morestuff.js

Я знаю, что могу получить subdir с помощью git archive -o ../subarchive.zip HEAD:subdir, но как я могу получить root и subdir, без subdir2_which_contains_A_LOT_of_stuff

Было бы нормально явночерный список subdir2_which_contains_A_LOT_of_stuff как-то

редактировать: я не думаю, что моя первоначальная предпосылка по этому вопросу была правильной, поэтому я не думаю, что ответы верны: / (в частности, «я знаю, что могу взять subdir»)с "бит это заблуждение)

1 Ответ

1 голос
/ 17 октября 2019

Внутри справочной страницы git archive мы видим:

--worktree-attributes
  Look for attributes in .gitattributes files in the working tree as well (see the section called “ATTRIBUTES”).

и

ATTRIBUTES
export-ignore
  Files and directories with the attribute export-ignore won’t be added to archive files. See gitattributes(5) for details.

export-subst
  If the attribute export-subst is set for a file then Git will expand several placeholders when adding this file to an archive. See gitattributes(5) for details.

… так что вы можете определить выделенный файл .gitattributes это будет соответствовать вашим потребностям.

В качестве альтернативы, нам также сказали, что:

<extra>
   This can be any options that the archiver backend understands. See next section.

Так, например, если мы завершим тарбол и команда бэкенда будет tar , мы можем использовать - исключить (который является частью tar, а не git) для достижения того же, что может быть проще, чем определение всей политики Git.

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