Hacer reference al sha1 en un repository local desde otro repository local en git

Tengo dos repositorys git que cloné en mi máquina local. Estoy intentando aplicar un cambio de un repository a otro:

cd path/to/local-repo1 git fetch path/to/local-repo2 <sha1> // cherry-pick from fetch head, etc. 

Me estoy poniendo:

 fatal: Couldn't find remote ref <sha1> fatal: The remote end hung up unexpectedly 

Encontré git: aplica los cambios introducidos por commit en un repo a otro repo , pero ¿por qué es que git no reconoce el sha1 en otro repository local? Resulta que si reemploop el sha1 con el nombre de una twig, tiene éxito, pero necesito hacer esto con una multitud de sha1 y realmente no quiero crear una twig en cada uno para hacer reference a ellos.

La forma de git fetch de git fetch que intentas usar es:

 git fetch <repository> <refspec> 

Sin embargo, su SHA1sum es (¡es improbable que lo sea!) Un refspec válido. Un refspec define un mapeo entre references (generalmente nombres de twigs) entre el repository de origen y el de destino. SHA1sums (nombres de objects) son distintos de refs, y el error te dice que cuando hagas que git fetch path/to/local-repo2 f414f31 , está expandiendo el refspec a f414f31:f414f31 y luego no encontrando el ref f414f31 en el control remoto repository. Eso es porque no es una ref.

Entonces, suponiendo que su confirmación está en la sucursal local en el repository remoto, yo haría lo siguiente:

 git remote add other-local path/to/local-repo2 git fetch other-local git cherry-pick f414f31 

El formulario git fetch <remote-name> busca todas las twigs locales en el repository remoto para rastrear remotamente las twigs bajo refs/remotes/<remote-name> , y se asegura de que todos los objects necesarios para esas twigs (incluyendo todas las confirmaciones) en la historia) están presentes en su repository local.