使用 git-tfs 到 Git 的 TFS 迁移:如何在迁移后完全断开 Git 与 TFS 的连接?
TFS to Git migration with git-tfs: how to completely disconnect Git from TFS after migration?
我成功克隆了一个 TFS 存储库,但是 git log
仍然显示指向 master 和 tfs/default 的 HEAD,如下所示:
(HEAD -> master, tfs/default)
我已经尝试过 filter-branch 命令,并删除了 config
文件中的 [tfs]
、[git-tfs]
部分和 运行 以下命令:
git reflog expire --all
git gc --aggressive --prune
git tfs cleanup
git tfs cleanup-workspace
但它仍然存在。唯一可行的方法是删除 .git
文件夹,然后 运行ning git init
但这当然会丢失所有历史记录。我还检查了 git config --list --show-all
但那里没有远程 TFS 存储库。
问题
是否可以在使用 git-tfs 后完全断开 TFS 与 git 存储库的连接而不丢失历史记录,如果是的,怎么样?
EDIT
已接受的答案有效且具有指导意义,但请参阅 this answer on SuperUser 我理解的是 'safer' 方法.
Is it possible to completely disconnect TFS from the git repo without losing history after using git-tfs
您的 git 存储库未“连接”到 TFS 服务器。它只包含一些允许 git-tfs 能够与 TFVC 源代码控制交互的数据。
您看到的 tfs/default
是一个伪 git 远程分支,用于跟踪检索到的最后一个变更集。
and if yes, how?
因为它存储为git遥控器,所以删除文件更容易:
.git/refs/remotes/tfs/default
注意:如果您找不到这个文件,这是因为ref可能被打包在文件.git/packed-refs
中。如果有,删除refs/remotes/tfs/default
对应的行
我成功克隆了一个 TFS 存储库,但是 git log
仍然显示指向 master 和 tfs/default 的 HEAD,如下所示:
(HEAD -> master, tfs/default)
我已经尝试过 filter-branch 命令,并删除了 config
文件中的 [tfs]
、[git-tfs]
部分和 运行 以下命令:
git reflog expire --all
git gc --aggressive --prune
git tfs cleanup
git tfs cleanup-workspace
但它仍然存在。唯一可行的方法是删除 .git
文件夹,然后 运行ning git init
但这当然会丢失所有历史记录。我还检查了 git config --list --show-all
但那里没有远程 TFS 存储库。
问题
是否可以在使用 git-tfs 后完全断开 TFS 与 git 存储库的连接而不丢失历史记录,如果是的,怎么样?
EDIT
已接受的答案有效且具有指导意义,但请参阅 this answer on SuperUser 我理解的是 'safer' 方法.
Is it possible to completely disconnect TFS from the git repo without losing history after using git-tfs
您的 git 存储库未“连接”到 TFS 服务器。它只包含一些允许 git-tfs 能够与 TFVC 源代码控制交互的数据。
您看到的 tfs/default
是一个伪 git 远程分支,用于跟踪检索到的最后一个变更集。
and if yes, how?
因为它存储为git遥控器,所以删除文件更容易:
.git/refs/remotes/tfs/default
注意:如果您找不到这个文件,这是因为ref可能被打包在文件.git/packed-refs
中。如果有,删除refs/remotes/tfs/default