Поделиться только подмножеством Git-репозитория - PullRequest
3 голосов
/ 29 марта 2011

Я использую git-репозиторий для своих файлов точек и хочу поделиться им, за исключением некоторых файлов (в которых, например, есть некоторые идентификаторы). Есть ли способ сделать это без создания другого git-репозитория, содержащего только общие файлы?

Заранее благодарю за ответы.

Ответы [ 3 ]

2 голосов
/ 29 марта 2011

Нет.Каждый коммит репозитория содержит все файлы коммита, поэтому фильтрованное представление будет иметь разные идентификаторы коммитов.

Вы можете использовать что-то вроде git filter-branch, но на самом деле это создает копию вашей ветви, создаваяновый коммит для каждого оригинального коммита (если не отфильтрован).

Может быть способ автоматизировать это, поэтому у вас есть ветка, которая всегда внешне идентична вашей первоначальной ветке, но без критических файлов.Тогда вы только подтолкнете отфильтрованную ветвь к некоторому общедоступному репозиторию.

Но учтите, что объединение изменений, которые были основаны на этом репозитории, обратно в ваш исходный, не так просто, и, вероятно, подразумевало бы применение отдельных патчей для каждого.

1 голос
/ 29 марта 2011

Вам нужно создать подмодуль и поделиться им.

0 голосов
/ 29 марта 2011

Предполагая, что вам не нужно делать репо с другими вашими точечными файлами, просто добавьте файлы, которые вы не хотите передавать, в файл .gitignore.Сделайте это перед первым коммитом, и эти файлы никогда не должны быть частью репо.

Если вы уже передали свои точечные файлы, просто скопируйте файлы, которыми вы не хотите делиться, в какой-то другой каталог.Запустите git rm .some_file для каждого файла, которым вы не хотите делиться, чтобы удалить их из репозитория.Добавьте их в gitignore, зафиксируйте, а затем скопируйте обратно из другого каталога.

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