Учитывая, что единицей работы для git является репозиторий (или, точнее, репозиторий content ), я не думаю, что вы можете легко интегрировать один файл.
Если вы невам не нужна его история, вы можете просто скопировать ее в репозиторий.
Но если вам действительно нужна история, тогда немного git filter-branch
(как в " git: Как отделить библиотеку от проекта? filter-ответ, поддерево?") в порядке.Это, кажется, требует больших усилий только для одного файла.
Теоретически, " git: symlink / ссылка на файл во внешнем репозитории " предлагает решение, сочетающее подмодуль и символическую ссылку.
(из Павел Шимерда )
$ git submodule add /url/submodule/<reponame>
$ ln -s <reponame>/path/to/<linked_file>
$ git add .gitmodules <linked_file>
$ git commit -m "add a symbolic link to <linked_file> with the respective submodule"
С 2011 года (оригинальный ответ выше) Гавриил сообщает в комментариях что:
- Когда я извлекаю основной репо, связанный файл не является символической ссылкой, а вместо этого содержимое файла - "
<reponame>/path/to/<linked_file>
".Другими словами, git фиксирует цель символической ссылки как содержимое файла - Но основная идея работает.
Я использую "submodule/path/to/file
" вместо "file
", и она работает