【问题标题】:cannot revert in Azure Devops无法在 Azure Devops 中恢复
【发布时间】:2020-06-27 11:08:13
【问题描述】:

我将拉取请求合并到我们的开发分支中,但需要对其中一个文件进行额外更改。我想恢复拉取请求,然后将更改添加到功能分支,但是当我在 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。

【问题讨论】:

  • 假设 dev 是您的集成分支,那么可以在主题/功能分支上进行。并且在本地进行操作为您提供了更多诊断问题的选择。
  • 你知道git revert works的具体方法吗?它不会撤消先前的提交,它会添加一个新的提交,以取消前一个提交的更改。你确定这是你真正想做的吗?另请参阅this question about undoing a merge
  • 由于限制,我不能直接在 Dev 分支上做任何事情。所以我想到的是:恢复之前的拉取请求,在本地拉取 dev 分支,向之前合并的功能分支添加新的更改,推送编辑的分支,并在 Dev 中合并拉取请求。
  • @Richard 那么,在较早的拉取请求之上,开始一个新分支并将其推送到开发人员?
  • 没错。在你必须使用 PR 的地方,它永远是方法

标签: git visual-studio azure-devops git-revert


【解决方案1】:

是对原始功能分支的还原,在此处添加新的更改, 然后在 Dev 中再次合并它们,最好使用新的拉取请求 如何添加新的更改?

基于我自己,非常同意上面cmet提到的观点。作为您想要实现的目标,我认为使用 revert 不是一个好主意。因为它实际上最终会弄乱你的存储库。

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


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

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

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


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

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

这是什么意思以及如何检查冲突?

还有一位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

【讨论】:

  • 感谢您的详细解释!我通过不恢复而是将新更改直接添加到功能分支来解决它。成功了,它现在在 master 分支中。
猜你喜欢
  • 1970-01-01
  • 2020-05-01
  • 1970-01-01
  • 2019-08-17
  • 2019-12-31
  • 2022-11-24
  • 1970-01-01
  • 2022-12-05
  • 2019-10-30
相关资源
最近更新 更多