我必须将代码从 TFS 迁移到 Azure DevOpsService Git 存储库。为此,我使用“git-tfs”。使用“tfs-git”克隆tfs代码是可以的。但是,当我尝试将代码推送到远程源时,我遇到了问题。我尝试了以下方法 -
git init
,然后git clone <remote Git>
。之后我就跑了git tfs clone <TFS-url> <TFS folder
。我删除了 .git/
存储库中“Config”和“Description”文件的痕迹(只是删除了 的引用。当我尝试通过执行 git remote add origin <remote Git Url>
和 git push –u origin –-all
来推送代码时,我收到了类似 Outer clone contains inned clone. Do you want to create submodule?
的错误我可以理解,因为在从 TFS 克隆的文件夹中,已经有一个“.git”文件夹。取而代之的是,我尝试了正常的 git add .
、git commit
和 git push
,我得到的响应是“一切都是最新的”,但没有任何东西真正被推送到远程源。git init
但没有从远程源克隆。然后我使用“git-tfs”从 TFS 服务器克隆了 TFS 代码。这次没有‘外分身’,我以为一切都会顺利。但是,正如我所做的那样,已经创建了一个 git init
文件夹。我再次遇到同样的错误。我再次尝试使用一个新目录。我没有做.git
git init
时,我收到消息git push –u origin –-all
当我尝试Updates were rejected because the tip of your current branch is behind. Use git pull before pushing again.
时,我收到消息get pull
。
如何解决这个问题?
fatal:regusing to merge unrelated histories
文件夹。
'.git'
文件夹中有一个config
文件,它定义了由git-tfs工具初始化的版本控制信息(包括原始远程存储库)。 因此,我们需要先从
'.git'
文件中删除原来的远程仓库和其他
git-tfs
设置,然后运行 config
来设置 git 远程。尝试按照以下步骤执行此操作:
git remote add origin <remote Git Url>
)。
git-tfs-demo-repo
在目录中创建了一个新的存储库(例如此处的git tfs clone https://{server-Name}/{Collection} $/ProjectName/xx
)。
git-tfs-demo-repo
中的任何文本编辑器打开
config
文件
新创建的存储库目录。
原始的 .git
文件应该是这样的:config
中删除除
[core]
部分之外的所有部分
文件,然后保存。因此,config
文件将如下所示:config
git remote add origin <remote Git Url>
git push –u origin –-all
文件变成了这样 this:(版本控制更改为新的远程存储库)