Git Rebase已合并分支
我从主Git Rebase已合并分支,git,merge,git-merge,rebase,git-rebase,Git,Merge,Git Merge,Rebase,Git Rebase,我从主develope分支myfeature创建了一个功能分支,该分支名为myfeature,还有另一个开发人员创建的另一个功能分支另一个功能 我们都在不同的文件中进行更改 另一个开发人员已创建PR,但尚未合并到开发。但是,我需要他对我的分支所做的更改,因此,我将另一个功能合并到我的我的功能分支并创建拉取请求 但是,现在主要的问题是,我可以看到另一个特性的变化分支到我的我的特性的拉取请求。那么,我怎样才能重新设定基准呢?我不想显示来自其他分支的更改 我查看了另一个帖子,但其中有些帖子我不太理解
develope
分支myfeature
创建了一个功能分支,该分支名为myfeature
,还有另一个开发人员创建的另一个功能分支另一个功能
我们都在不同的文件中进行更改
另一个开发人员已创建PR,但尚未合并到开发。但是,我需要他对我的分支所做的更改,因此,我将另一个功能合并到我的我的功能分支并创建拉取请求
但是,现在主要的问题是,我可以看到另一个特性的变化分支到我的我的特性的拉取请求。那么,我怎样才能重新设定基准呢?我不想显示来自其他分支的更改
我查看了另一个帖子,但其中有些帖子我不太理解
任何帮助都将不胜感激
编辑:
git日志
显示如下。(目标分支机构为开发
)
git log–all–decoration–oneline–graph
f0acaed (HEAD -> feature/my-feature, origin/my-feature) commit message..
a4f4dab (origin/another-feature, feature/another-feature) commit message..
* db30503 (origin/HEAD, origin/develop, develop) merge pull request from another branch
blah blah blah
除非将另一项功能
合并,否则更改将在您的PR上可见。
如果您只是不想在审阅时看到PR中的这些更改,只需在审阅期间更改基本分支(如果您使用的版本控制系统允许)
另一个解决方案(我更喜欢)是重新设置分支的基础
使用另一个功能,而不是合并它们。
在这种情况下,当合并另一个功能时,您将不会那么头疼,而且在查看时,您将能够只查看您推送的提交(大多数系统允许您在查看时选择提交集)
更新:(对于上述第二种方法)
要跳转到my feature
的原始状态,您需要使用reflog
下面是如何做到这一点
通过键入确保没有挂起的更改
git状态
类型
git reflog
您将看到如下内容:
在那里,您可以看到头部参考的历史记录。只需找到合并之前的提交(在图片中,它是一个带有提交哈希值的HEAD@{1}
,带有提交哈希值e919ec6
)
现在只需使用以下命令签出该提交:
git checkout HASH_此处
(例如git checkout e919ec6
)
现在只需从该提交创建一个分支(为方便起见)
checkout-b我的功能。原创
现在,my feature.ORIGINAL
包含合并前的分支状态,您位于该分支上。
要执行重基而不是合并,请执行以下步骤:
对分支机构进行备份(同样是为了方便)
git branch my feature.BKP
使用另一个功能重新设置分支的基础
git重新设置另一项功能的基础
重命名旧的坏分支(为方便起见)
git将我的功能重命名为我的功能。错误
将当前分支名称从my-feature.ORIGINAL更改为my-feature(以匹配远程分支名称)
git重命名my-feature.ORIGINAL my-feature
现在,您可以强制将您的分支推送到远程分支,PR将被更新
您可以共享一个简化的提交树吗?develop分支是您的PR目标分支吗?如果是,似乎没有办法不看到更改,除非另一个功能
合并到开发
@evolutionxbox Editedquestion@ketan干杯您可以改用git log–all–decoration–oneline–graph
?作为这里的有用背景,值得记住的是,git从未将提交视为“属于”任何特定分支。因此,当您要求比较“我的特性”和“开发”时,它只是查看可以从“我的特性”而不是“开发”的提示中访问的提交。无论您如何合并或重新设置基础,来自“另一个功能”的提交都将显示在该比较中,直到它们合并到develop中。因为,我已经合并并创建了PR。我如何才能做到这一点?另一个解决方案(我更喜欢)是使用另一个功能重新设置分支的基础,而不是合并它们。如果您有my feature
的原始分支的备份,请签出到该分支,并使用此命令git rebase other feature
而不是git merge
。如果你没有备份,请告诉我,我会提供更多关于如何找到备份的详细信息。备份你的意思是我创建了新的PR并删除了旧的PR?同时,我编辑了我的问题以显示git日志
,我指的是原始分支我的功能
(类似于git branch my feature.BKP
)的副本,然后将其与其他功能合并。但从问题来看,我想你还没有支持:)@ketan,我已经更新了答案,请检查。
f0acaed (HEAD -> feature/my-feature, origin/my-feature) commit message..
a4f4dab (origin/another-feature, feature/another-feature) commit message..
* db30503 (origin/HEAD, origin/develop, develop) merge pull request from another branch
blah blah blah