Supongamos que tengo 5 commits locales. Quiero enviar solo 2 de ellos a un repositorio centralizado (usando un flujo de trabajo de estilo SVN). ¿Cómo hago esto?
Esto no funcionó:
git checkout HEAD~3 #set head to three commits ago
git push #attempt push from that head
Eso termina empujando los 5 commits locales.
Supongo que podría hacer git reset para deshacer mis commits, seguido de git stash y luego git push, pero ya tengo mensajes de commit escritos y archivos organizados y no quiero rehacerlos.
Mi sensación es que alguna bandera pasada para presionar o restablecer funcionaría.
Si ayuda, aquí está mi configuración de git
[ramanujan:~/myrepo/.git]$cat config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = ssh://server/git/myrepo.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
master~3
. Cualquier referencia al compromiso "hasta" deseado es igualmente válido, comoHEAD~3
oHEAD~~~
, o el SHA específico, o una etiqueta que etiqueta ese compromiso.