После 'git clone <some_repo>' внутри <my_repo> я хочу сделать <some_repo> частью <my_repo> - PullRequest
0 голосов
/ 01 апреля 2012

У меня есть личное имя git-репо myrepo.Я получил somerepo, используя git clone, и теперь я хочу сделать его неотъемлемой частью myrepo.Я думаю сделать это следующим образом.

  1. Внутри myrepo дерева, git clone <somerepo>.
  2. Удалите все связанные с git файлы и каталоги из somerepo, например .git .gitignore и т. Д.
  3. Добавьте все файлы в извлеченном somerepo и подтвердите.

Существует ли какая-либо команда, которая клонирует только «необработанные» данные git-repo (игнорироватьотносящиеся к git файлы)?Еще лучше, есть команда (или может быть больше чем одна), которая может сделать эти три шага.

Я немного прочитал о git submodule.Можно ли использовать submodule?Предположим, что у меня нет никакого интереса к будущей модификации в somerepo.

Ответы [ 2 ]

1 голос
/ 01 апреля 2012

Возможно, я не понимаю вопроса, потому что, похоже, вы уже ответили на него.

После клонирования просто rm -fr каталог .git. В репозитории есть только один каталог .git, поэтому его легко удалить. (Не похоже на subversion, где у вас есть .svn в каждом каталоге.)

Вы сказали: «Предположим, у меня нет будущего интереса», поэтому нет необходимости удалять файлы .gitignore. Но если вы действительно хотите, это тоже довольно просто:

$ find <path_to_some_repo> -name '.gitignore' -exec rm {} \;

Наконец, git add <path_to_some_repo> и все готово.

Если это не то, что вы ищете, пожалуйста, объясните ваши требования более точно.

Существует ли какая-либо команда, которая клонирует только «необработанные» данные git-repo (игнорируя файлы, связанные с git)?

Не в буквальном смысле, потому что «клон» в git означает получить все ссылки и объекты в хранилище. Там равно git checkout-index, что похоже на «svn export», но вам все равно нужно иметь копию репозитория, чтобы сделать это.

См .: Есть ли "git export" (например, "svn export")?

0 голосов
/ 01 апреля 2012

Вы можете добавить второй репозиторий как удаленный:

git remote add some_repo git@server:some-repo

Выпуск git pull some_repo или git fetch some_repo + ручное объединение впоследствии.

A объединение поддеревьев также может быть подходящим.

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