如何从git仓库中删除起源

基本问题:如何将git回购与它的克隆源分离?

git branch -a节目:

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

我想删除所有关于起源的知识,以及相关的修订。

更长的问题:我想使用一个现有的subversion回购,并从中制作一些较小的git回购。每个新的git回购都应该有相关分支的完整历史。我可以修剪回购到只是想要的子树使用:

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

但是生成的repo仍然包含起源/主分支下现在丢弃的子树的所有修订。

我意识到我可以使用-T标志来git-svn首先克隆subversion repo的相关子树。我不确定这是否会比以后在git repo副本上运行git filter-branch --subdirectory-filter的多个实例化更有效,但是,无论如何,我仍然希望断开与原点的链接。

451660 次浏览

很简单:

git remote rm origin

至于filter-branch问题——只要在你的filter分支命令中添加--prune-empty,它就会删除在你的结果repo中实际上不包含任何变化的任何修订:

git filter-branch --prune-empty --subdirectory-filter path/to/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 show origin


>$ git push origin master

在我的情况下,git分支-r将继续显示本地存储库上的origin/master(在我在远程和本地重命名master后)

这就解决了问题:

E:\SourceCode\PascalCoinGit\PascalCoin>git remote prune origin
Pruning origin
URL: https://github.com/SkybuckFlying/PascalCoin
* [pruned] origin/master


E:\SourceCode\PascalCoinGit\PascalCoin>

命令:

git remote show origin

(以前见过,但完全忘了)

结果:

E:\SourceCode\PascalCoinGit\PascalCoin>git remote show origin
* remote origin
Fetch URL: https://github.com/SkybuckFlying/PascalCoin
Push  URL: https://github.com/SkybuckFlying/PascalCoin
HEAD branch: PascalCoinMaster
Remote branches:
GUIExperimentalBugFixes1       tracked
GUIExperimentalBugFixes2       tracked
GUIExperimentalBugFixes3       tracked
GUIExperimentalBugFixes4       tracked
GUIExperimentalBugFixes5       tracked
MergeTest                      tracked
PIP-0026Windows7Implementation tracked
PascalCoinMaster               tracked
SkybuckMaster                  tracked
TestPascalCoinMaster           tracked
refs/remotes/origin/master     stale (use 'git remote prune' to remove)
Local branches configured for 'git pull':
GUIExperimentalBugFixes1       merges with remote GUIExperimentalBugFixes1
GUIExperimentalBugFixes2       merges with remote GUIExperimentalBugFixes2
GUIExperimentalBugFixes4       merges with remote GUIExperimentalBugFixes4
GUIExperimentalBugFixes5       merges with remote GUIExperimentalBugFixes5
MergeTest                      merges with remote MergeTest
PIP-0026Windows7Implementation merges with remote PIP-0026Windows7Implementation
SkybuckMaster                  merges with remote SkybuckMaster
Local refs configured for 'git push':
GUIExperimentalBugFixes1       pushes to GUIExperimentalBugFixes1       (up to date)
GUIExperimentalBugFixes2       pushes to GUIExperimentalBugFixes2       (up to date)
GUIExperimentalBugFixes3       pushes to GUIExperimentalBugFixes3       (up to date)
GUIExperimentalBugFixes4       pushes to GUIExperimentalBugFixes4       (up to date)
GUIExperimentalBugFixes5       pushes to GUIExperimentalBugFixes5       (up to date)
MergeTest                      pushes to MergeTest                      (up to date)
PIP-0026Windows7Implementation pushes to PIP-0026Windows7Implementation (fast-forwardable)
PascalCoinMaster               pushes to PascalCoinMaster               (up to date)
SkybuckMaster                  pushes to SkybuckMaster                  (up to date)
TestPascalCoinMaster           pushes to TestPascalCoinMaster           (up to date)


E:\SourceCode\PascalCoinGit\PascalCoin>

是的,git分支-r现在显示它已经消失了!

使用这个>Git显示origin >Git远程rm来源