2009-09-16 19 views
12

Me utilizan para extraer de un repositorio git de alguien. Hoy movió su repositorio a otra dirección. Me pregunto si hay alguna manera de sacar de la nueva dirección y obtener la información de los cambios que hizo con respecto a la última vez antes de su mudanza.git al cambiar el repositorio

Lo que he hecho es "git clone newaddress" en mi repositorio sacado de su anterior. La salida es como:

tiene xxx

paseo xxx

conseguido xxx

conseguido xxx

paseo xxx

Obtener la lista de suplentes para newaddress

Conseguir lista pack para newaddress

Conseguir índice para el paquete xxx

Conseguir paquete xxx

que contiene xxx

conseguido xxx

conseguido xxx

paseo xxx

...

Entonces "git pull" y obtuvo el siguiente mensaje, que no entiendo:

Me pidió que tire sin decirme qué rama desea combinar con, y la rama' .master.merge 'en su archivo de configuración tampoco me lo dice. Por favor, nombre de la rama que desea fusionar en la línea de comando y intente de nuevo (por ejemplo, 'git pull'). Ver git-pull (1) para más detalles sobre el refspec.

Si a menudo se combina con la misma rama, es posible que desee configurar las siguientes variables en el archivo de configuración :

branch.master.remote = <nickname> 
branch.master.merge = <remote-ref> 
remote.<nickname>.url = <url> 
remote.<nickname>.fetch = <refspec> 

Ver git-config (1) para más detalles.

¿Qué puedo hacer ahora para poder obtener la información de los cambios que hizo con respecto a la última vez antes de su mudanza?

¡Gracias y saludos!

Respuesta

23

Si estoy entendiendo bien su pregunta, lo que está buscando que hacer es reemplazar su origen remoto actual por uno nuevo. No sé si se puede reemplazar desde la línea de comandos, pero se puede cambiar en su .git/config (esto es, en el directorio del proyecto)

VIEJO

[remote "origin"] 
    url = git+ssh://original_repository.com/my_project.git 
    ... 

NUEVO

[remote "origin"] 
    url = git+ssh://new_repository.com/my_project.git 
    ... 

La parte git+ssh podría ser algo así como [email protected] (esto es lo que sería si estuvieras usando github), o estoy seguro de una variedad de otras cosas. Esto podría ayudar a aclarar algunas cosas que omití o que no explicaron lo suficientemente bien: Changing Your Origin.

Espero que esto ayude a responder su pregunta. Aclamaciones.

+0

Para una referencia rápida: ----------------------------- git remote set-url origen https://github.com/user/ repo2.git ----------------------------------------- http: // stackoverflow. com/questions/2432764/how-to-change-a-remote-repository-uri-using-git –

1

Ejecutar este en su repositorio git clonado:

git config branch.master.remote origin 

para cuidar de la "Usted me pidió que tire sin decirme" ... mensaje.

Luego, si sabe dónde se movió el repositorio remoto, podría hacerlo en su nuevo repositorio local clonado a git diff desde esa fecha.

$ git diff "@{yesterday}" 
$ git whatchanged --since="2 weeks ago" 

Nota: la próxima git1.6.5 mentions

formato de fecha se puede escribir humana a varias opciones, por ejemplo, "--since=yesterday", "[email protected]{2000.09.17}", se les enseña a inferir algunas entradas omitidas correctamente.

Véase también la pregunta SO "How do you get git to always pull from a specific branch?"

+0

Gracias! Me acabo de dar cuenta de que hice algo terriblemente mal aquí. Cloné su nuevo repositorio justo debajo del directorio de mi propio directorio, lo que significa que un clon de su nuevo repositorio aparece como un subdirectorio del mío propio, un clon de su antiguo repositorio. Así que eliminé todo el subdirectorio. Ahora si hago un "git clone newaddress" en el directorio principal de mi repositorio, obtendré "fatal: destination directory 'ya existe el vision_test'. Entonces, ¿cuál es la forma correcta de cambiar la dirección de su repositorio en la mía, así que solo puedo usar "git pull" en el futuro? ¡Gracias y saludos! – Tim

+0

En git 1.7.7.5, tuve el mensaje "Me pediste que tirara sin decirme qué rama ..." después de llamar a 'git remote rm origin' y' git remote add origin git @ fluff: /git/dist.git '. Pero tuve que llamar a los siguientes 3: 1) 'git config --remove-section branch.master' 2)' git config branch.master.remote origin' 3) 'git config branch.master.merge refs/heads/master' para deshacerse de la advertencia y no tener dos [branch "master"] en ./git/config. – mmorris

Cuestiones relacionadas