Git TF将所有更改推送到另一个TFS存储库

Git TF将所有更改推送到另一个TFS存储库,git,tfs,git-tf,Git,Tfs,Git Tf,我将TFSrepo克隆到本地Git,然后尝试将TFSremote更改到另一个存储库,以使用以下命令将所有更改集传输到该存储库: git tf --force configure http://tfs2012:8080/tfs/DefaultCollection $/ProjectName git tf checkin a出现以下错误后: git-tf: TF14019: The changeset 31129 does not exist 怎么了 PS:旧的存储库有一个版本2010,新的版

我将
TFS
repo克隆到本地
Git
,然后尝试将
TFS
remote更改到另一个存储库,以使用以下命令将所有更改集传输到该存储库:

git tf --force configure http://tfs2012:8080/tfs/DefaultCollection $/ProjectName

git tf checkin
a出现以下错误后:

git-tf: TF14019: The changeset 31129 does not exist
怎么了


PS:旧的存储库有一个版本2010,新的版本是2012。新的存储库是空的

如果我没有提到git tf并不是用来替代适当的迁移和集成工具的话,那我就是失职了

也就是说,如果您想尝试,您不能简单地
git-tf克隆一个存储库,然后
git-tf签入另一个服务器
git-tf
maps提交到变更集,以确保git和TFS存储库中的一致性。因此,当您更改远程服务器时,它会在新服务器中查找这些更改集

如果您真的想将其推送到新服务器,则需要删除变更集以提交映射

要做到这一点,最简单、最健壮的方法是简单地克隆git存储库,并在新服务器上设置克隆的存储库,而不会弄乱配置数据。然后您可以
git tf签入
到它:

$ git clone ~/path/to/repo ~/path/to/cloned_repo
Cloning into cloned_repo...
done.
$ cd ~/path/to/cloned_repo
$ git-tf configure https://youraccount.visualstudio.com/DefaultCollection $/YourProject
Configuring repository
$ git-tf checkin 
Connecting to TFS...
Checking in to $/YourProject: 100%, done.                            
由于
git-tf
只映射一个TFS存储库,因此这也允许您进行增量移动。如果在初始迁移之后,有新的变更集要迁移,可以将它们拉到克隆的git存储库中,然后将它们推送到新的TFS服务器,而无需重新配置

$ cd ~/path/to/cloned_repo
$ git pull ~/path/to/repo
$ git-tf checkin
Connecting to TFS...
Checking in to $/YourProject: 100%, done. 

我还发现,删除
.git/git tf
文件夹也能起到同样的作用。今天我明白了,正如你所解释的。现在它对我起作用了。尽管如此,如果您在以叙述方式解释步骤后添加一个逐步说明,这个答案可能会更好。我从这个答案开始,几天后,我最终按照你描述的方式完成了步骤。Saschagotfried很高兴这对我有帮助,我为我的困惑道歉。谢谢你的编辑,我同意这更有用。