无法在 Azure Devops 中恢复

cannot revert in Azure Devops

我将拉取请求合并到我们的开发分支中,但需要对其中一个文件进行额外更改。我想还原拉取请求,然后将更改添加到功能分支,但是当我在 Azure Devops 中使用还原按钮时说:

Encountered conflicts when reverting commit '8a750f'. This operation needs to be performed locally.

非常缺乏信息,也没有指出错误的内容或位置。

我的第一个问题是:是对原始功能分支的还原,在这里添加新的更改,然后在 Dev 中再次合并它们,使用新的拉取请求是添加新更改的最佳方式? 还是我应该将新更改添加到新分支并将该分支推送到 Dev?我主要关心的是如何将这两个功能分支(一个已经与 Dev 合并的分支和新分支)推送到其他分支,如 TestMaster?

第二个问题是关于错误信息:它是什么意思,我该如何检查冲突?我使用 Visual Studio 2019 和 .Net Core 2.2。

Is a revert of the original feature branch, add the new changes here, and then merge them again in Dev, using a new pull request the best way to add the new changes?

基于本人,非常赞同楼上评论的观点。至于你想要实现的目标,我认为使用 revert 不是一个好主意。因为它实际上最终会使您的存储库变得一团糟。

正如您在评论中所说,在 revert 之后,您必须重新对 feature 分支进行所有更改,其中包括之前合并但后来取消的分支。它的优点是它可以确保您的存储库历史的完整性。但我认为这不是您的方案的最佳方式。


为了更好的解释,最初,拉取请求被合并到 feature 分支到 dev 分支,然后你发现你需要对其中一个文件添加另一个更改。

那么,为什么不直接将这个新的更改放入 feature 分支,然后再将其推入 dev 分支呢?

正如您所关心的,如果您创建一个新分支来应用您的新更改,当它们需要合并到另一个分支时会造成麻烦,因为您必须保持它们彼此同步,否则会导致冲突很容易。


另外,如果创建一个新的分支是你必须做出的选择。您可以根据 feature 分支创建此新分支。将新更改应用到文件后,通过拉取请求将新分支合并到 feature 分支。然后将 feature 分支合并到 dev 分支。

此时可以删除新分支,因为所有更改都同步回feature分支。此外,您可以稍后继续处理 feature 分支。

What does it mean and how can I check the conflicts?

还有一个thread解释的很详细。你可以检查一下。

要解决这个问题,您可以尝试使用以下脚本:

# Unstage conflicts  
git reset HEAD ./  

# Unstage deletions and reset everything back to master
git checkout -- ./ 

# Cancel the pending revert operation
git revert --abort 

$ git checkout 8a750f

# Make use of tag feature, it can help for this kind of issue in the future.
$ git tag mark

$ git push origin mark