Как удалить origin из репозитория git

основной вопрос: Как отделить git-РЕПО от источника, из которого оно было клонировано?

git branch -a показывает:

* master
  remotes/origin/HEAD -> origin/master

и я хочу удалить все знания о происхождении и связанные с ними изменения.

более длинный вопрос: я хочу взять существующее РЕПО subversion и сделать из него несколько меньших РЕПО git. Каждый из новых репозиториев git должен иметь полную историю только соответствующей ветви. Я могу обрезать РЕПО только до желаемого поддерева использование:

git filter-branch --subdirectory-filter path/to/subtree HEAD

но результирующее репо по-прежнему содержит все ревизии теперь отброшенных поддеревьев в ветви origin/master.

Я понимаю, что я мог бы использовать флаг-T для git-svn для клонирования соответствующего поддерева РЕПО subversion в первую очередь. Я не уверен, что это будет более эффективно, чем более поздний запуск нескольких экземпляров git filter-branch --subdirectory-filter на копиях репозитория git, но, в любом случае, я все равно хотел бы разорвать связь с origin.

1 ответов


довольно проста:

git remote rm origin

что касается filter-branch вопрос - просто добавить --prune-empty к вашей команде ветви фильтра, и она удалит любую ревизию, которая фактически не содержит никаких изменений в вашем результирующем РЕПО:

git filter-branch --prune-empty --subdirectory-filter path/to/subtree HEAD