【问题标题】:Why cannot I create a pull request for a commit and how can I workaround it?为什么我不能为提交创建拉取请求,我该如何解决?
【发布时间】:2018-02-26 14:32:09
【问题描述】:
  1. 我做了 4 次提交
  2. 和最后一个的拉取请求。
  3. 合并了该拉取请求。
  4. 出现了新信息,我必须返回到第二次提交。
  5. 我在 Git 扩展中“重置当前分支”到第二次提交。
  6. 我创建了一个新分支
  7. 我用力推了树枝
  8. 我曾尝试创建一个新的拉取请求。

-> 我不能,得到:Branch "target" is already up-to-date with branch "the-name-of-the-new-branch" in repository "repo"

如果我在老分支上做,反应是一样的,只是分支的名字不同。

我已经查看了这个问题,但在 bitbucket 上没有该信息。

我没有回滚,而是尝试恢复提交 3 和 4 - 结果是完全一样的。另一方面,这是很自然的——commit 中的代码也是一样的。

为了使代码看起来不同,我在将一个操作一分为二时添加了一条线。

Bitbucket 再次拒绝创建拉取请求:

There is already a pull request open between bugfix/IDM-2782_rollback and develop. View the pull request. 

我去那个旧的拉取请求并拒绝它

再次尝试发出新的拉取请求:

This pull request can't be merged.
You will need to resolve conflicts to be able to merge. More information.

“更多信息”告诉我与“开发”分支进行合并。但我已经做到了。现在。就在发出拉取请求的订单之前。

【问题讨论】:

  • 需要把两个分支颠倒过来。
  • @Code-Apprentice 据我所知...... bitbucket 中没有这样的命令......我应该在哪里寻找它?
  • 你能提供一张你尝试做 PR 的截图吗?我的回答基于 GitHub 的术语。
  • 能否提供提交历史的描述或图表?您是否分叉了您尝试向其提出拉取请求的存储库?还是您在同一个仓库中执行此操作?
  • 在第 6 步创建新分支后,您似乎没有进行任何新的提交。您在第 8 步中进行另一个 PR 的目的是什么?你希望这能实现什么?

标签: git bitbucket rollback pull-request git-extensions


【解决方案1】:

拉取请求和合并只允许您添加提交。它们不允许您删除它们。要从分支中删除提交,您不能使用拉取请求或合并。相反,您必须将分支重置为要保留的最后一次提交:

git checkout develop
git reset --hard <sha1 of the last commit you want to keep>
git push -f origin develop

仅当您是该项目的唯一工作人员时才建议这样做。如果您正在与团队合作并且其他人已拉取develop,那么您不应该重置它。相反,应该还原您想要“删除”的提交。

git checkout develop
git revert <sha1 of a commit you want to "remove">

请注意,这实际上并没有删除任何提交。相反,它会创建一个新的提交,该提交会反转您选择的提交的更改。

【讨论】:

  • 对不起,什么分叉回购?我该怎么做?请您补充一点吗?
  • @Gangnus 我根据一些假设回答了。请查看我编辑的答案,以更好地解决您的问题。
  • 我不想重置“开发”。我想通过两次提交回滚对多个文件所做的更改。
  • AFAIK,我可以找到我的第 4 次和第 2 次提交之间的差异,并将该差异应用于当前状态。我只是不知道该怎么做......
  • @Gangus 简短的回答是,Pull Request 总是会创建一个合并,而一个合并只能添加提交。
【解决方案2】:

还将您合并到的分支重置为合并之前。一旦您将历史合并到一个分支中,除非您以某种方式将其重置,否则它将永久成为该分支历史的一部分。

重要的是历史记录,即提交,而不是当前在这个或那个存储库中调用的任何当前特定的提交。

【讨论】:

    猜你喜欢
    • 2011-07-18
    • 2017-03-28
    • 1970-01-01
    • 2021-09-26
    • 1970-01-01
    • 2015-11-02
    • 2016-07-28
    • 1970-01-01
    相关资源
    最近更新 更多