Как удалить 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, но в любом случае я бы все равно как разорвать связь с источником.


Довольно просто:

  git remote rm origin  

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

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

Удалите существующий источник и добавьте новый источник в каталог вашего проекта

 > $ git remote show origin> $ git remote rm origin> $ git add.> $ git commit -m "First commit"> $ git remote add origin Copied_origin_url> $ git remote  показать origin> $ git push origin master  

0



Как удалить origin/master в Git

Я не могу удалить origin/master из моего сервер. Понятия не имею, почему.

Сообщение об ошибке следующее

  remote: error: по умолчанию удаление текущей ветки запрещено, потому что nextremote: error: 'git clone' не приведет к извлечению какого-либо файла, что вызовет путаницу.  remote: error: remote: error: Вы можете установить переменную конфигурации receive.denyDeleteCurrent как remote: error: 'warn' или 'ignore' в удаленном репозитории, чтобы разрешить удаление theremote: error: текущая ветка с предупреждением или без него.  удаленный: ошибка: удаленный: ошибка: чтобы подавить это сообщение, вы можете установить его на «отказ». удаленный: ошибка: отказ от удаления текущей ветки: refs/Heads/master на acanzian@elab.ecn.purdue.edu:/export /главная/а/elabshare/git/ID-check. мерзавец!  [удаленный отклонен] главный (удаление текущей ветки запрещено) ошибка: не удалось отправить некоторые ссылки на 'acanzian@elab.ecn.purdue.edu:/export/home/a/elabshare/git/ID-check.git'  

Нет, я не использую Github .


Забавный факт: даже удаленные репозитории находятся в ветке. Вам отказывают, потому что вы пытаетесь удалить ветку, которую ваш источник в настоящее время «проверил».

Если у вас есть прямой доступ к репо, вы можете просто открыть оболочку без repor и используйте старый добрый git branch , чтобы узнать, в каком источнике ветки сейчас находится. Чтобы изменить его на другую ветку, вы должны использовать git symbolic-ref HEAD refs/heads/another-branch .

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


Вместо фактического удаления мастера с сервера вы можете заменить его следующим образом:

  git push origin otherbranch:  master -f  

Это заменит master содержимым otherbranch, но он все равно будет называться master на пульте дистанционного управления. А затем вы можете проверить мастер как мастер в своем локальном.

2

Оцените статью
clickpad.ru
Добавить комментарий