@Charles 的回答是正确的。无论如何,我最终使用了很多次,最重要的是在项目上重新设置特定配置
* a8f9182 (HEAD -> production) 生产配置
| * daa18b7 (pre) 预生产配置
|/
| * d365f5f (local) 本地配置
|/
* 27d2835 (dev) 将拯救世界的惊人新功能
* | 56d2467 (master) 钻孔最先进的项目
|/
我为它创建了一个新命令:
$ 猫 ~/bin/git-rebaseshot
提交=$1
DEST=${2:-HEAD}
git rebase ${COMMIT}^ ${COMMIT} --onto $DEST
通常你想自动完成该命令的分支名称,所以添加它来获取这个函数(添加到 .bashrc 或 .profile):
_git_rebaseshot ()
{
__gitcomp_nl "$(__git_refs)"
}
git autocomplete 将搜索它
你可以像这样使用这个命令:
# rebase config on prepro on actual HEAD
$ git rebaseshot prepro
# rebase config on local onto dev
$ git rebaseshot local dev
# rebase production config on master
$ git rebaseshot pro master
当你正确地划分特征时,可能性是无穷无尽的。
* a8f9182 (HEAD -> postgres) BBDD 配置
* a8f9182(本地)本地配置
* a8f9182(调试)日志级别配置
* a8f9182(开发)新功能
|
我想这就是被子人喜欢做的事情。
不管你提供什么 sha/ref,这个命令都可以工作:
$ git rebaseshot <Feature branch> master
$ git rebaseshot <commit of XX> master