我可以在不显式指定父级的情况下基于分支的派生点吗?

安德鲁

我经常git rebase -i在发布历史前先清理历史。通常,我想将提交编辑回到当前分支的分支位置,而不更改其分支点。我这样做是这样的:git rebase -i $(git show-branch --merge-base $PARENT_BRANCH HEAD)

这是一个难看的命令,我正在尝试寻找一种更好的方法。只要我愿意,我想让git自动找出合适的父母。

我想要的是的别名git rebase -i --fork-point $(something),在其中something找到当前分支的最近共同祖先的分支。它不需要是防弹的。如果它适用于线性主题分支,那么对我来说已经足够了。

使用Git 2.24(2019年第四季度)时不再 git rebase -i --onto @{upstream}...HEAD

新的“ git rebase --keep-base <upstream>”会尝试找到要重新建立基础的主题的原始基础,并在同一基础之上重新基础,这在运行“ git rebase -i”(及其有限变体“ git rebase -x”)时很有用

该命令还学会了在更多情况下可以快进,而不是重放来重新创建相同的提交。

请参阅Denton Liu(提交414d924提交4effc5b提交c0efb4c提交2b318aa(2019年8月27日)和提交793ac7e提交359eceb(2019年8月25日帮助按:埃里克阳光(JUNIOÇ滨野(ÆvarArnfjörðBjarmason( )约翰内斯Schindelin( ) 犯6330209提交c9efc21(2019年8月27日),并提交4336d36通过(2019年8月25日)ÆvarArnfjörðBjarmason( Denton-L
sunshinecogitsteravardscho
avar
帮助按:埃里克阳光(sunshinecoJUNIOÇ滨野(gitsterÆvarArnfjörðBjarmason( )avar约翰内斯Schindelin( )dscho
(通过合并JUNIOÇ滨野- gitster-提交640f9cd,2019年9月30日)

变基:教变基 --keep-base

常见的情况是,如果用户正在主题分支上,并且希望对中间提交或自动压榨进行一些更改,则他们将运行诸如

git rebase -i --onto master... master

为了保留合并基础
当向Git邮件列表贡献补丁系列时,这很有用,它通常从当前的' master'开始。
在开发补丁程序的同时,' master'也会得到进一步开发,有时候,保持基础'master'的基础上不是最好的主意,而是保持基本提交不变。

除此之外,希望在不更改任何内容的情况下测试主题分支中的单个提交的用户可能会运行

git rebase -x ./test.sh master... master

由于基于分支和上游合并基础的情况很常见,因此请将该--keep-base选项作为快捷方式引入

这使我们可以将以上内容重写为

git rebase -i --keep-base master

和:

git rebase -x ./test.sh --keep-base master

分别。

git rebase手册页现在包括

--keep-base

将创建新提交的起点设置为的合并基础<upstream> <branch>
运行“ git rebase --keep-base <upstream> <branch>”等效于运行“ git rebase --onto <upstream>... <upstream>”。

如果在上游分支的顶部开发功能,则此选项很有用。
在使用该功能时,上游分支可能会前进,并且最好还是继续在上游之上重新部署,而是保持基本提交不变。

尽管此选项和--fork-point查找两者之间的合并基础<upstream> and <branch>,此选项都将合并基础用作将在其上创建新提交起点,而--fork-point使用合并基础来确定将作为基础的提交集。


mvds在评论中建议将此与git rebase --reapply-cherry-picks

在我的工作流程中,要为用C编写的固件开发最小的二进制补丁,我需要返回特定的提交哈希,创建分支,执行修改并查找最终二进制文件中的差异。

自从进行特定提交以来,我们的编译器得到了升级,变得更加智能,从而将代码库变成了非编译代码。

为了解决这个问题,我挑选了所有需要再次编译的提交。除非使用,否则
那些精心挑选的提交将弄乱by所做的魔术--keep-base--reapply-cherry-picks

辩论是Git的邮件列表上

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

来自分类Dev

互斥锁可以在不显式保护对象的情况下确保对象的线程可见性吗?

来自分类Dev

如何在不指定父级高度的情况下强制子级div为父级div的高度的100%?

来自分类Dev

我可以在不符合PCI DSS 1级标准的情况下通过GooglePay使用PayPal吗?

来自分类Dev

如何在不显式指定名称的情况下将JSON键值对投影到列

来自分类Dev

如何在不显式指定主键的情况下使用Dapper Extensions将对象插入PostGreSql?

来自分类Dev

Kubectl:如何在不显式指定Pod名称的情况下显示Pod日志?

来自分类Dev

如何在不显式指定TProperty类型的情况下创建Expression <Func <TModel,TProperty >>

来自分类Dev

GIT SVN:在没有错误的合并父级的情况下获取重新创建的SVN分支

来自分类Dev

我们可以在不知道其真实类型的情况下将基类指针转换为派生类指针吗?

来自分类Dev

仅使用CSS,是否可以在不事先确定父级宽度的情况下将子级限制为父级宽度?

来自分类Dev

在不指定派生类的情况下声明对象

来自分类Dev

我可以在不更改Apache,Mysql和Php版本的情况下将ubuntu从10.04升级到16.04吗?

来自分类Dev

我可以尝试一下-在不引发异常的情况下捕获JS吗?

来自分类Dev

Angular 1.5:在不知道父级名称的情况下访问父级组件

来自分类Dev

我可以在不创建父提交的情况下同步在GitHub上分叉的仓库吗?

来自分类Dev

是否可以在不显式命名SQL Server中的每一列的情况下进行多个枢纽操作?

来自分类Dev

我可以在默认情况下让我的Git'difftool'应用'--dir-diff'吗?

来自分类Dev

我可以在没有https的情况下将我的应用发布到App Store吗?

来自分类Dev

Noexcept对派生类构造函数的承诺:可以在不对基础构造函数作出诺言的情况下使用吗?

来自分类Dev

如何在不显示父级活动的情况下将一个全屏对话框片段替换为另一个?

来自分类Dev

我可以在不指定x轴的情况下在matplotlib中使用散点函数吗?

来自分类Dev

我可以在不指定内容高度的情况下在xcode 12上进行滚动查看吗

来自分类Dev

我可以在没有包装的情况下模拟httpClient.PostAsync()调用吗?

来自分类Dev

我可以在不复制任何数据的情况下通过向量附加本征矩阵吗?

来自分类Dev

我可以在不检查yaml的情况下开发管道吗?

来自分类Dev

我可以在没有svg文件的情况下创建JSVGCanvas吗?

来自分类Dev

我可以在不使用IP的情况下创建以太网络吗

来自分类Dev

我可以在不提供示例的情况下使用CsvProvider编写标头吗?

来自分类Dev

我可以在不传递指针数组的情况下启动协作内核吗?

TOP 榜单

热门标签

归档