【问题标题】:How to push to remote repo after rebase without all previous added commit history?在没有所有先前添加的提交历史记录的情况下,如何在 rebase 后推送到远程 repo?
【发布时间】:2022-11-24 07:41:59
【问题描述】:

我还不擅长 git。我想问你,remote repo rebase 应该怎么做。

我的意思是,我有主要的分支(远程),我也有分支,例如。我的分支(当地的)。合并PR时我的分支主要的是开放的,添加了更多的提交主要的这导致my_branch 上的冲突.

所以,我总是:

  • 更新主分支
  • 结帐我的_branch
  • 将 my_branch 与 main 变基
  • 解决冲突
  • 拉动变化
  • 提交
  • 推送到远程主

但是,它在 PR 中创建了奇怪的提交历史并将它们添加到我的 PR 中。我不想要它。我想将 my_branch 与 main 变基,将其推送到远程仓库,并且不会看到在我的 PR 打开一段时间后添加到 main 的这些提交。

我该如何改变它?我知道有一种方法,但我没有正确理解它。谁能解释一下?

提前致谢。

【问题讨论】:

  • 通常我建议不要使用git pull。它做了两件事(git fetchgit merge),特别是对于初学者来说,一步一步地完成这两个步骤会更容易。
  • 我不明白为什么在解决冲突后你会拉(获取和合并)。省略此步骤是否已经解决了您的问题?
  • 好的,所以我去主分支,运行 git fetch 来更新存储库,检查我的分支。接下来我该怎么办?

标签: git push rebase git-merge-conflict


【解决方案1】:

在我有一个分支 my_branch 的情况下,我稍后想从中发出拉取请求,我通常遵循以下工作流程:

  • 获取
  • 如果远程 main 有新的提交:
    • 将我的本地my_branch 变基到远程main,解决出现的冲突
  • 向@987654325 添加一些提交@
  • 推送my_branch(如果我之前已经推送过,则使用--force-with-lease

现在我的工作存在于远程中,我可以从该分支创建一个拉取请求,或者只是将它放在那里一段时间作为备份。

【讨论】:

    猜你喜欢
    • 2019-04-30
    • 2020-03-22
    • 2020-01-31
    • 2021-06-24
    • 1970-01-01
    • 2016-11-15
    • 2017-04-11
    • 2020-10-23
    • 2019-03-05
    相关资源
    最近更新 更多