【发布时间】:2018-10-15 20:53:26
【问题描述】:
我正在与 git 的特殊情况作斗争。
简而言之,我正在尝试对从 origin/master 签出的另一个分支 (feature/basic-tracking) 签出的分支 (feature/tracking-refactor) 进行变基。
合并feature/basic-training 后,我想将feature/tracking-refactor 重新定位到master 上,而不是将feature/basic-training 提交到新的origin/master 上。
下面是我的情况的更图形表示。假设我有一个如下的 git log 图作为起点。
而且,在一个成功的拉取请求将feature/basic-tracking 合并到 master 之后,我目前处于这种情况。
但是,当我尝试将 feature/tracking-refactor 重新定位到 master 以便拥有类似干净的日志历史记录时,我实际上也在从 feature/basic-tracking 拖动每个提交。我只想重新设置 feature/tracking-refactor 提交,例如仅使用 (d0875g 和 ee68b9t) SHA 的提交。
我的工作是从origin/master 创建一个新分支,并从feature/tracking-refactor 分支中挑选每个提交。但我希望有一个更优雅的选择。谢谢!
【问题讨论】:
-
搜索
rebase --onto。 -
您能举例说明我目前的情况如何运作吗?
-
我没有时间正确地写出来,但本质上,
git rebase --onto可以让你分开目标和截止。这里的目标是origin/master,截止日期是提交c15t43f(尽管t不是提交哈希ID中的有效字符!)。 -
@torek 我亲手写的,别指望它完美无瑕...