3 dudas sobre git (novato)


#1

Hola,

Estoy empezando con git y tengo tres dudas que no consigo solventar por
mi cuenta.

Mi situación es esta:

  • inicialmente tengo un proyecto en el PC de casa controlado con git.
  • hago un “git clone” desde el portátil para copiar el proyecto del PC.
  • trabajo con el proyecto en el portátil, haciendo commits y más tarde
    decido pasar los cambios al proyecto del PC.

Dudas:

  1. git push:
    he probado haciendo desde el portátil un git push contra el proyecto del
    PC. El problema es que después de hacerlo, si hago un git status en el
    proyecto del PC aparece que los archivos del proyecto han quedado
    desactualizados. ¿por qué no se actualiza el proyecto del PC con los
    cambios introducidos en el proyecto del portátil?

  2. git pull:
    he probado a hacer un git pull desde el PC contra el proyecto del
    portátil y todo va bien. El inconveniente que veo con git pull es que
    necesito entrar en la máquina remota desde donde quiero traer los
    cambios, y esto no siempre es posible si quisiera trabajar desde un
    ordenador desconocido (público, por ejemplo). Tendría que tener
    instalado un servidor ssh…

y la última duda:
3) Una vez hecho un pull o push sobre un proyecto, ¿cómo puedo volver a
versiones anteriores?

Gracias! Si pueden recomendarme algún tutorial, se lo agradecería mucho.


#2

No sé si tendrás tu proyecto gestionado con Github [1] pero en esta
página
hay buena documentación de Git.

[1] http://github.com/

El 17 de marzo de 2009 18:01, Sergio R.
removed_email_address@domain.invalidescribió:


#3

2009/3/17 Sergio R. removed_email_address@domain.invalid:

decido pasar los cambios al proyecto del PC.

Dudas:

  1. git push:
    he probado haciendo desde el portátil un git push contra el proyecto del
    PC. El problema es que después de hacerlo, si hago un git status en el
    proyecto del PC aparece que los archivos del proyecto han quedado
    desactualizados. ¿por qué no se actualiza el proyecto del PC con los
    cambios introducidos en el proyecto del portátil?

Por lo que he podido comprobar no es recomendable utilizar un
repositorio como “repositorio central” y como “copia de trabajo”. De
hecho al hacer lo que tu propones Git me mostraba un aviso:

warning: updating the currently checked out branch; this may cause
confusion,
as the index and working tree do not reflect changes that are now in
HEAD.

Para Git, en el otro repositorio se habían producirdo cambios desde el
HEAD. Para arreglarlos hay que hacer un “git reset HEAD” seguido de un
“git checkout ‘*’” (hay comillas alrededor de ese asterísco).

  1. git pull:
    he probado a hacer un git pull desde el PC contra el proyecto del
    portátil y todo va bien. El inconveniente que veo con git pull es que
    necesito entrar en la máquina remota desde donde quiero traer los
    cambios, y esto no siempre es posible si quisiera trabajar desde un
    ordenador desconocido (público, por ejemplo). Tendría que tener
    instalado un servidor ssh…

Esta es la forma de trabajar, tu tienes tu repositorio personal y te
descargas los cambios de los demás (con un fetch o con un pull en una
rama aparte), los compruebas y lo aplicas a tu rama, si procede.

Si quieres tener el funcionamiento similar a un Subversion lo mejor
sería tener un repositorio “central” separado sería mejor que hicieras
un clón “bare” y hicieras push y pull de ese repositorio central.

y la última duda:
3) Una vez hecho un pull o push sobre un proyecto, ¿cómo puedo volver a
versiones anteriores?

El mecanísmo general es "git checkout " donde puede ser
parte del SHA de un commit, una referencia como HEAD^^, un tag,…
pero lo mejor sería crear una nueva rama para “volver atrás”, por que
si no te quedas en un estado en el cuál no estás trabajando sobre una
rama y puedes perder commits.

Por cierto, no es por molestar, y seguro que si nos salimos de tema
Manuel dirá algo, pero ¿no hay una lista de Git en español? Porque
esta pregunta es mucho más de Git que de Rails.


#4

2009/3/17 Daniel R. Troitiño removed_email_address@domain.invalid

Por cierto, no es por molestar, y seguro que si nos salimos de tema
Manuel dirá algo, pero ¿no hay una lista de Git en español? Porque
esta pregunta es mucho más de Git que de Rails.

Estoy aplicando la regla del short’n’sweet :wink:

Os recuerdo que existe la lista hacking-es para este tipo de
generalidades.
Es silenciosa, pero las consultas suelen tener respuesta:

http://lists.simplelogica.net/pipermail/hacking-es/


#5

2009/3/17 Daniel R. Troitiño removed_email_address@domain.invalid:

Para Git, en el otro repositorio se habían producirdo cambios desde el
HEAD. Para arreglarlos hay que hacer un “git reset HEAD” seguido de un
“git checkout ‘*’” (hay comillas alrededor de ese asterísco).

En vez de git checkout '*' you hago git checkout . que es lo mismo
pero con menos keystrokes.

Creo que deberiamos ir cerrando el off-topic.


#6

si es que no hay una lista de git.

Seguro que si la hay. De todas formas apuntate a Hacking-es. Que hay
buena
gente…más o menos los mismos que en esta ya que aquella nació de esta

Un saludo

El 18 de marzo de 2009 0:11, Sergio R.
removed_email_address@domain.invalidescribió:


#7

Manuel González Noriega wrote:

2009/3/17 Daniel R. Troitiño removed_email_address@domain.invalid

Por cierto, no es por molestar, y seguro que si nos salimos de tema
Manuel dirá algo, pero ¿no hay una lista de Git en español? Porque
esta pregunta es mucho más de Git que de Rails.

Estoy aplicando la regla del short’n’sweet :wink:

Os recuerdo que existe la lista hacking-es para este tipo de
generalidades.
Es silenciosa, pero las consultas suelen tener respuesta:

http://lists.simplelogica.net/pipermail/hacking-es/

Gracias a todos. Me queda mucho por aprender en git. Sé que no era la
lista más apropiada, pero no encontraba una lista sobre git. Me apuntaré
a hacking-es, si es que no hay una lista de git.