Как получить одиночный .gitignore после git svn create-ignore

Я импортировал репозиторий SVN с помощью Git, используя:

git svn clone --preserve-empty-dirs --stdlayout svn+ssh://... SVN.git

Это удалось в конце концов, хотя по пути он несколько раз терпел неудачу, и мне пришлось "перезапустить" с помощью

git svn fetch

Но, похоже, в итоге все в порядке. (Хотя теперь, когда я пишу, я начинаю задаваться вопросом, должен ли я предоставить --preserve-empty-dirs в дополнительных fetch es, а? EDIT: Нет, я не должен. См. Мой комментарий ниже.)

Затем я хотел создать .gitignore, и поэтому я сделал с

git svn create-ignore

И это тоже удалось.

Но конечный результат меньше удовлетворения. Он генерировал много файлов .gitignore во многих папках. Кажется, что каждый раз, когда SVN обладал свойством svn:ignore Git, создавался соответствующий .gitignore файл.

Хотя я хотел бы объединить их в один файл root .gitignore. Это возможно с помощью Git, поскольку его гораздо более гибкий с игнорированием, позволяющий игнорировать в подкаталогах с помощью подстановочных знаков (или без них). В любом случае, я думаю, что можно автоматически преобразовать эти "sub-.gitignore s" в одну в корне.

И я хотел бы иметь это, потому что "люди SVN" не были бы счастливы, если бы я совершил более двадцати .gitignore файлов...

Ответ 1

Я нашел решение. Вы должны использовать show-ignore вместо create-ignore и сохранить вывод в файл.

Итак, после клонирования репозиторий выполните следующую команду:

git svn show-ignore > .gitignore

из корня репозитория, где у вас есть каталог .git.