【问题标题】:Deleting commits from a branch in which other branchs are merged从合并了其他分支的分支中删除提交
【发布时间】:2020-10-18 18:16:32
【问题描述】:

我有三个分支 - A(我正在处理的分支)、B、C。

分支 B 和 C 的提交历史是这样的

B 分支

  • 提交 b2
  • 提交 b1

C 分支

  • 提交 c2

  • 提交 c1

我已将这些分支合并到 Branch A,所以 A 的提交历史看起来像这样

  • 提交 a2
  • 提交 c2
  • 提交 c1
  • 提交 b2
  • 提交 b1
  • 提交 a1

我想使用git reset --hard a1 重置我的分支 A 以提交 a1。如果我这样做确实提交了 b1、b2 和 c1,c2 也会从分支 B 和 C 中删除,或者它们仅从分支 A 中删除?

【问题讨论】:

  • 你应该试试git rebase -i <hash before what you want to delete>。然后,您可以将“pick”更改为“drop”并保存,您应该能够删除提交。不将此作为答案,因为根据您尝试放弃的提交,可能会出现一些问题,但您绝对应该尝试这样做。如果您遇到问题,请不要忘记 git rebase --abortgit reflog

标签: git version-control git-merge git-reset


【解决方案1】:

Branch A 上的硬重置只会影响该分支。其他分支将不受影响。

回答您的问题 - 在使用 (git reset --hard a1) 硬重置 Branch A 后,提交 b1b2 将保留在 Branch B 中,提交 c1c2 将保留在Branch C

【讨论】:

    【解决方案2】:

    不,git reset --hard a1 不会更改分支 B 或 C 上的任何提交。但是您将丢失提交 a2 中的工作,除非它保存在其他地方。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-24
      • 2015-02-13
      • 2019-11-09
      • 1970-01-01
      • 2021-12-24
      • 1970-01-01
      • 2021-04-13
      • 2014-10-02
      相关资源
      最近更新 更多