Как удалить 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