【问题标题】:How to merge new git commit history list on top of existing branch?如何在现有分支之上合并新的 git 提交历史列表?
【发布时间】:2021-07-20 08:37:28
【问题描述】:

在 Git 中,我有两个分支:

  • master
  • v2

v2 是一个 lerna mono repo,

我通过删除.git 目录来启动分支(这会导致整个历史记录丢失),然后我执行git init; git remote add origin $url 以重新创建我将推送到v2 分支的git 历史记录。

现在 PR 几乎可以合并了,如何合并才能将 v2 分支历史放在 master 分支历史之上?

保持良好历史记录最干净的方法是什么?

【问题讨论】:

  • .git 目录包含实际的存储库。如果你删除它,你已经删除了存储库,并且根本不再使用 Git。
  • 我必须说我做了git init; git remote add origin $url 吗?但是,如果我不在 git repo 中,您认为我如何推送 v2?这听起来很明显,我什至没有解释它。 (我更新了这个问题,因为这对你们 3 个人来说并不明显)
  • 鉴于人们总是在做这种事情而不创建新的存储库,是的,您确实不得不说您创建了一个新的存储库。我仍然不清楚你喜欢作为你的实际结果。

标签: git github merge rebase pull-request


【解决方案1】:

在另一个文件夹中再次克隆您的存储库,同时将您所做的工作保留在您的第一个文件夹中(您删除 .git 子文件夹的那个文件夹)

在那个新的本地克隆中,切换到一个新的 PR 分支

 git switch -c myNewPRBranch

然后导入你的作品

 git --work-tree=../old_repo add .
 git commit -m "Import PR code"
 git push -u origin myNewPRBranch

最后,从您的新 PR 分支向 main 发起 PR。

这假设您可以直接推送到克隆的存储库。如果没有,您需要fork it first。

【讨论】:

  • 感谢@VonC 先生,我无法对其进行测试,但我已经接受了,因为您看起来已经习惯了这种操作。谢谢!
猜你喜欢
  • 2015-04-17
  • 2011-11-08
  • 1970-01-01
  • 2014-06-30
  • 2015-10-19
  • 2017-09-11
  • 2014-06-29
  • 2012-05-02
  • 1970-01-01
相关资源
最近更新 更多