如何从git储存库中删除来源

问题描述 投票:247回答:2

基本问题:如何将git repo与克隆源分离?

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 repo副本上运行git filter-branch --subdirectory-filter的多个实例化效率更高,但是无论如何,我还是想断开与原始链接。

git git-svn
2个回答
419
投票

相当简单:

git remote rm origin

关于filter-branch问题-只需将--prune-empty添加到您的filter branch命令中,它将删除实际上在您的存储库中不包含任何更改的任何修订:

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

0
投票

删除现有来源并将新来源添加到您的项目目录中

>$ git remote show origin

>$ git remote rm origin

>$ git add .

>$ git commit -m "First commit"

>$ git remote add origin Copied_origin_url

>$ git remote show origin

>$ git push origin master
© www.soinside.com 2019 - 2024. All rights reserved.