¿Cómo presionar un compromiso único a un nuevo control remoto?

Quiero enviar una única confirmación a un nuevo control remoto

Mi logging local: A -> B -> C -> D donde A es el compromiso inicial

Flujo de trabajo habitual para impulsar el repository local:

  • crear proyecto en el server
  • git add remote origin ...
  • git push -u origin master o git push -u --all origin

Mi logging remoto: A -> B -> C -> D


git push -u origin A:master no funciona – ¿por qué?

Dado que las personas están interesadas por el por qué
Gitlab no desencadena ganchos de web de evento de inserción en la confirmación inicial (no estoy seguro de si el error o la característica …)

Simplemente crea un nuevo repository:

 cd .. mkdir -p newrepo git init cd ../oldrepo git fast-export master~1..master | (cd ../newrepo && git fast-import && git checkout) 

Luego agrega un control remoto al segundo repository:

 cd ../newrepo git remote add origin someremote git push --all git remote add old ../oldrepo git fetch old git merge old/master git push 

Por supuesto, también puedes filtrar twigs, etc.

cherry-pick y merge no es la mejor solución, pero funciona por ahora.

 mkdir newRepo cd newRepo git init git remote add old ../oldRepo git remote add origin <remote repository> git fetch old git cherry-pick <commit SHA> git push -u origin master git merge old/master # merge by hand if neccessary # git add <manually merged files> git commit git rebase # check result git log --oneline git push origin master