Me gustaría saber cómo funciona git-receive-pack, porque literalmente no tengo idea de qué pasa con él. ¿Alguien puede arrojar algo de luz sobre este misterio?¿Cómo funciona git-receive-pack?
Respuesta
http://schacon.github.com/git/git-receive-pack.html
Este comando no suele ser invocado directamente por el usuario final. La interfaz de usuario para el protocolo está en el lado del paquete de envío de git, y el par de programa está destinado a ser utilizado para enviar actualizaciones al depósito remoto. Para operaciones de extracción, vea git-fetch-pack (1).
El comando permite la creación y el reenvío rápido de sha1 refs (heads/tags) en el extremo remoto (estrictamente hablando, es el extremo local git-receive-pack que se ejecuta, pero para el usuario que está sentado en el final del paquete de envío, está actualizando el control remoto. ¿Confundido?)
Incluso la persona que escribe la página del manual piensa que es confusa, ¡así que no se culpe si no la entiende!
Básicamente, esto es parte del código que recibe confirmaciones en el servidor remoto que fueron empacadas y enviadas por send-pack
en su máquina local cuando hace un git push
.
No es importante comprender los detalles que lo respaldan, como dicen los documentos, no es un comando que en realidad se deba escribir.
Si está realmente muy interesado en cómo funciona internamente, un par de buenos lugares para empezar podría ser:
The Wikipedia Page on Git (Software), The Git Website itself, o The free book, Pro Git
O, siempre se puede ir look the 'c' code up for that command en el código fuente aquí en github.
"Básicamente, esto es parte del código que empaqueta los cambios y compromisos del código en su máquina y los envía a donde quiera que esté presionando el código cuando hace un git push". Esto es incorrecto. 'receive-pack' es lo que recibe_ esos paquetes. 'send-pack' es lo que los empaqueta :) – bdonlan
¡Ah, gracias! Eso es realmente lo que estaba pensando, pero escribí mal las cosas ... He tratado de corregir eso en la respuesta. –
Gracias, hombre, el libro tenía lo que estaba buscando. (El desbordamiento de la pila parece tener algunos problemas en el cromo, así que tardé un poco en responder y tal). –
Existe documentación muy detallada del protocolo recibirá el paquete en el repositorio git. Puede verlo aquí https://github.com/git/git/blob/master/Documentation/technical/pack-protocol.txt.
- 1. ¿Cómo funciona Arrays.asList (...). Contiene (...) funciona?
- 2. ¿Cómo funciona este "retraso" funciona
- 3. ¿Cómo funciona exactamente si ($ variable) funciona?
- 4. ¿Cómo funciona OfType <T>() ¿Funciona?
- 5. ¿Cómo funciona `if (Test-Path ...)` realmente funciona?
- 6. ¿cómo funciona {} mientras (0) funciona en macro?
- 7. ¿Cómo funciona Fannkuch?
- 8. ¿Cómo funciona DataReader?
- 9. ¿Cómo funciona CAKeyframeAnimation Scale?
- 10. JPA EntityManager, ¿cómo funciona?
- 11. ¿Cómo funciona traceroute?
- 12. ¿Cómo funciona _mm_mwait?
- 13. ¿Cómo funciona valgrind?
- 14. ¿Cómo funciona CATransition?
- 15. ¿Cómo funciona edit.exe?
- 16. ¿Cómo funciona el presentPopoverFromRect?
- 17. ¿Cómo funciona jQuery .data()?
- 18. ¿Cómo funciona este desastre?
- 19. ¿Cómo funciona ivy: publicar?
- 20. Cómo funciona Lambda Expresión
- 21. mysql - ¿cómo funciona mysqldump?
- 22. ¿Cómo funciona header()?
- 23. ¿Cómo funciona apply-templates?
- 24. strlen: ¿cómo funciona?
- 25. ¿Cómo funciona [UIAlertView show]?
- 26. ¿Cómo funciona malloc?
- 27. ¿Cómo funciona Locbaml?
- 28. ¿Cómo funciona Clojure ^: const?
- 29. @XmlRegistry - ¿Cómo funciona?
- 30. ¿Cómo funciona GetModuleHandle()?
¿Has leído [9.6 Git Internals - Transfer Protocols] (http://git-scm.com/book/ch9-6.html)? Lo pregunto porque la respuesta adecuada dependería de tu comprensión de ese capítulo. – Johnsyweb
No, no lo he hecho, lo siento, ni siquiera me di cuenta de que estaba allí hasta después de la respuesta. –