2012-01-17 24 views
21

Estoy usando el complemento NSDate-Extensions en mi proyecto iOS Xcode. El repositorio principal tiene algunos errores que parece ser fijado en dos solicitudes de camiones:GitHub: ¿Cómo agregar solicitudes de extracción abiertas al repositorio local?

Estas peticiones siguen abiertas y no se acepta al repositorio principal. ¿Cómo puedo agregar estos a mi repositorio local en un Git-way? Que estaría bien, si mi repo local, se pone al día, si su Tenedor se actualiza más tarde:

+0

posible duplicado de [Solicitudes de extracción de otras horquillas en mi tenedor] (http://stackoverflow.com/questions/6022302/pull-requests-ffor-other-forks-into-my-fork) – CharlesB

+0

posible duplicado de [ git: ¿cómo puedo obtener una solicitud de extracción no fusionada para una rama que no tengo?] (http://stackoverflow.com/questions/6743514/git-how-can-i-fetch-an-unmerged-pull-request -for-a-branch-i-dont-own) –

Respuesta

16

Añadir un .patch al final de la URL de tracción - se puede descargar y aplicar el parche en tu repositorio:

curl https://github.com/erica/NSDate-Extensions/pull/6.patch | git am 
+0

¿Qué está haciendo 'git am'? – dhrm

+0

'git am' aplica el archivo de parche canalizado por el comando' curl'. –

+0

Después de que he hecho el comando anterior, el parche se aplicó con éxito, pero cuando estoy ejecutando un estado 'git' dice que no hay ningún cambio. ¿Por qué este parche puede cambiar mi repositorio local y todavía decir que no hay ningún cambio? – dhrm

12

Usted debe agregar las horquillas que ofrecían las solicitudes de extracción, y agregarlos como un mando a distancia:

  • Encontrar la persona que contribuye el enlace (normalmente basta con hacer clic el hash SHA1)

  • hacer algo como:

    git remote add githubuser theirgithubfork.git

Luego se puede tirar fácilmente por sus cambios:

  • git fetch githubuser

tomar fácilmente compromete individuales con"

  • git cherry-pick thesha1fromthepullrequest

Para un ejemplo completo, imaginar this pull request (6bbbcc5) from RogerE on the Ruby Capistrano project.

$ git clone [email protected]:capistrano/capistrano.git 
$ cd capistrano 
$ git remote add RogerE https://github.com/RogerE/capistrano.git 
$ git fetch RogerE 
$ git cherry-pick 6bbbcc5
+0

Entonces, ¿debería clonar el repositorio original de erica y ejecutar "git remote add" para las dos horquillas de Ricardo1980 y exaltado? ¿Qué pasa si después hago una "extracción de git", ¿se extrae del repositorio original o también se extraen las actualizaciones de los dos controles remotos? – dhrm

+0

¿Por qué están haciendo una búsqueda y luego una selección de cereza? ¿No podría la búsqueda sacar todo del control remoto? – dhrm

+0

'git pull' sacaría del repositorio original. Puede especificar de qué repositorio extraer especificando el nombre remoto y el refspec. p.ej. 'git pull RogerE maestro'. –

-2

Puede tirar de las solicitudes de extracción específicos de esta manera:

git pull https://github.com/erica/NSDate-Extensions/pull/6 
git pull https://github.com/erica/NSDate-Extensions/pull/7 

imo esto es mucho más fácil que la adición de un mando a distancia (sobre todo cuando es sólo una sola vez fija) o la tubería a través de rizo.

+0

La idea es correcta, pero no funciona así, lo que posiblemente sea la razón del voto a la baja. Agregué una respuesta funcional con la misma idea en http://stackoverflow.com/a/18096344/1904815) – JonnyJD

14

Puede tirar de las solicitudes de la línea de comandos sin controles remotos añadiendo:

git pull https://github.com/erica/NSDate-Extensions +refs/pull/6/head 

Si aún no está seguro de que quieres hacer eso, entonces es posible que desee echa un vistazo a esa rama primero con:

git fetch https://github.com/erica/NSDate-Extensions +refs/pull/6/head:refs/origin/pull/6 

La ventaja de esto en comparación con el uso de los archivos de parche es que git recibe las confirmaciones reales. Entonces git puede ver cuando el maestro se fusionó previamente en la solicitud de extracción.El archivo de parche no está al tanto de tales diferencias.

Cuestiones relacionadas