cómo recuperar un repository de git remoto eliminado accidentalmente del repository local

He hecho algo así como lo siguiente:

(1) clonar un repository remoto de git para el host local

local # git clone http://www.foo.com foo

(2) agregue otro proyecto en un host ssh (barra) como el segundo repository remoto

local # git remote add bar ssh://bar/home/project

local # git fetch bar

(3) hizo algo estúpido en el host ssh (barra):

bar # rm -rf /home/project

¿Podría decirme cómo puedo recuperar el proyecto en el host (barra) ssh de mi copy local, para que otro desarrollador en el host ssh pueda continuar su trabajo y pueda ejecutar 'git fetch bar' para get su confirmación, al igual que No hice nada malo con su host ssh, es decir, deshacer todo lo que hice en la barra de host. muchas gracias.

ACTUALIZAR:

bar # mkdir -p /home/project && cd /home/project && git init --bare

local # git branch remote show bar

local # git push bar bar/master:refs/heads/master

local # git push bar bar/branch1:refs/heads/branch1

local # git push bar bar/branch2:refs/heads/branch2

Puede configurar el host remoto como un nuevo repository de git y luego presionarlo.

Este blog repasa cómo hacerlo:

Toolman Tim – Configurando un nuevo repository remoto de git

suponiendo que todavía tiene la configuration de la barra como un repository remoto, esencialmente:

 ssh bar "mkdir -p /home/project && cd /home/project && git --init bare" git push bar refspec 

Refspec es con frecuencia solo el nombre simple de la sucursal en el repository local así que:

 git push bar master 

Consulte la página de manual de git push para get un tratamiento detallado de lo que califica para un refspec. La sección de EJEMPLOS es particularmente útil para comprender los cambios más avanzados

En lugar de uno de estos:

 $ git push bar bar/branchX:refs/heads/branchX 

para cada twig ref'd en local. Prueba esto

 $ git push bar refs/remotes/bar/*:refs/heads/* 

El command anterior debe hacer que todas las references remotas que haya guardado localmente en la memory caching vuelvan al control remoto y ponerlas en el lugar correcto.

Tenga en count que también debe presionar cualquier label que pueda haber tenido:

 $ git push --tags bar 

Además, ayuda saber qué va a pasar antes de que realmente haga el esfuerzo:

 $ git push --dry-run ...(rest of push cmd) 

NOTA: utilicé 'bar' donde la mayoría de las personas tendrían 'origen' – reemplace con el nombre de su control remoto.

Sigue la respuesta de Mark Carey. He recuperado parcialmente el repository eliminado de la siguiente manera:

bar # mkdir -p /home/project && cd /home/project && git init --bare

local # git branch remote show bar

local # git push bar bar/master:refs/heads/master

local # git push bar bar/branch1:refs/heads/branch1

local # git push bar bar/branch2:refs/heads/branch2

ACTUALIZAR:

Cómo hacer copys de security de sucursales privadas en git