2

我创建了本地 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从这里解决它但我想知道是否有更清洁的方法可以做到这一点?

4

1 回答 1

2

在 Azure DevOps 上创建新存储库时,您可以选择对其进行初始化,也可以将其保留。初始化存储库时,Azure DevOps 会添加 a.gitIgnore和 a readme.md

在此处输入图像描述

在此处输入图像描述

这通常是您看到的推/拉问题的原因。

解决它的最简单方法是:

git remote add origin <azure_repo_url>
git fetch origin
git rebase master --onto origin/master
... fix any merge conflicts ...
git push origin master

或者:

git remote add origin <azure_repo_url>
git pull --rebase
... fix any merge conflicts ...
git push origin master

最终结果是您最终得到了本地更改以及生成的忽略和自述文件。如果遥控器上有更多更改,您可能需要执行更高级的合并版本,但对于其他干净的遥控器,应该这样做。

于 2020-01-02T21:07:18.273 回答