A resposta de @Charles está correta. De qualquer forma, acabei usando isso tantas vezes, principalmente para realocar configurações específicas em um projeto
* a8f9182 (HEAD -> produção) configuração de produção
| * configuração de pré-produção daa18b7 (pré)
| /
| * configuração local d365f5f (local)
| /
* 27d2835 (dev) novo recurso incrível que salvará o mundo
* | 56d2467 (master) chato estado da arte para projeto
| /
que eu crio um novo comando para ele:
$ cat ~ / bin / git-rebaseshot
COMMIT = $ 1
DEST = $ {2: -HEAD}
git rebase $ {COMMIT} ^ $ {COMMIT} --onto $ DEST
normalmente você deseja preencher automaticamente os nomes dos ramos para esse comando, então adicione-o fornecendo esta função (adicionando a .bashrc ou .profile):
_git_rebaseshot ()
{
__gitcomp_nl "$ (__ git_refs)"
}
git autocomplete irá procurar por ele
você pode usar este comando assim:
# 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
Quando você divide os recursos corretamente, as possibilidades são infinitas.
* a8f9182 (HEAD -> postgres) Configuração de BBDD
* a8f9182 (local) configuração local
* a8f9182 (depuração) configuração de nível de registro
* Novo recurso a8f9182 (dev)
|
Eu acho que isso é o que quilt pessoas gostam de fazer.
este comando funcionará de qualquer maneira com qualquer sha / ref que você fornecer:
$ git rebaseshot <Feature branch> master
$ git rebaseshot <commit of XX> master