【发布时间】:2020-04-21 09:31:44
【问题描述】:
我创建了本地 git repo。 (git init、git add、git commit)。然后我在 Azure DevOps 上创建了 git repo。
我也在本地执行git remote add origin <azure_repo_url>
现在当我尝试git push origin master 时,我回来了:
To azure_repo_url
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'azure_repo_url'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
所以我先尝试了pull:git pull origin master,但又回来了:
$ git pull origin master
warning: no common commits
remote: Azure Repos
remote: We noticed you're using an older version of Git. For the best experience, upgrade to a newer version.
remote: Found 3 objects to send. (27 ms)
Unpacking objects: 100% (3/3), done.
From azure_repo_url
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
fatal: refusing to merge unrelated histories
我可以通过git pull origin master --allow-unrelated-histories从这里so解决它,
但我想知道是否有更清洁的方法可以做到这一点?
【问题讨论】:
-
有很多选择。你可以变基。你可以强行推动。是否要保留您创建的存储库中的历史记录?
-
@DanielMann,在 github 中有选项
...or push an existing repository from the command line我想在 Azure 上做同样的事情,即从我的本地 repo 填充 Azure repo。 -
然后强制推送。
-
从你的观点来看,你现在只有两条路可走——要么是
git pull,要么是git push --force。两者都在链接的问题中进行了讨论。 -
如果您在 Azure 存储库中还没有历史记录,那么只需强制推送。如果你这样做,我的建议是克隆 Azure 存储库并将新的本地文件作为新提交移动到该存储库中,然后推送。
标签: git azure-devops azure-repos