Ответ @Charles правильный. Во всяком случае, я использовал это так много раз, прежде всего, чтобы перенастроить конкретную конфигурацию в проекте.
* a8f9182 (HEAD -> production) производственная конфигурация
| * daa18b7 (предварительная) подготовительная конфигурация
| /
| * d365f5f (локальная) локальная конфигурация
| /
* 27d2835 (dev) потрясающая новая функция, которая спасет мир
* | 56d2467 (мастер) скучный по последнему слову техники для проекта
| /
что я создаю для него новую команду:
$ cat ~ / bin / git-rebaseshot
COMMIT = 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 (dev) новая функция
|
Думаю, это то, что любят делать люди, занимающиеся лоскутным одеялом .
эта команда будет работать в любом случае с любым предоставленным вами sha / ref:
$ git rebaseshot <Feature branch> master
$ git rebaseshot <commit of XX> master