2008-11-20 10 views
12

Estoy desarrollando software de calificación escolar y decidí usar Github para alojar el proyecto. Después de construir un código en mi caja de Ubuntu lo empujé a Github y luego lo cloné en mi MacBook Pro. Después de editar el código en el MBP, lo devolví a Github. A la mañana siguiente intenté actualizar mi repositorio en la caja de Ubuntu con un git pull y me dio todo tipo de problemas.¿Cuál es la mejor manera de trabajar con Github y varias computadoras?

¿Cuál es la mejor manera de trabajar en esta situación? No quiero bifurcar mi propio repositorio y no quiero enviarme correos electrónicos ni solicitudes. ¿Por qué no puedo tratar a Github como un maestro y empujar/tirar desde allí a todos mis repositorios personales en diferentes computadoras?

+0

¿Ha clonado el repositorio de github en su caja de Ubuntu antes de intentar extraerlo de Github? –

+0

¿Puedes actualizar con lo que quieres decir con "todo tipo de problemas"? ¿Tuviste problemas para fusionar los cambios? – mipadi

+0

Creé el repositorio en mi caja de Ubuntu y lo envié a Github. No creo que lo haya vuelto a clonar en mi caja Ubuntu de Github. ¿Es eso necesario? Y cuando digo todo tipo de problemas, quiero decir que recibí varios mensajes de error. Finalmente utilicé un comando 'commit -f' y funcionó. Sorta. –

Respuesta

9

Supongo que su problema fue que la máquina en la que creó el repositorio se coló cuando intentó emitir el comando git pull.

Cuando clona un repositorio de git existente (como lo hizo en su 2da máquina, la MacBook Pro), se configura automáticamente para que sus comandos git pull fusionen automáticamente el control remoto con sus cambios locales.

Sin embargo, cuando inicialmente crea un repositorio y luego lo comparte en un repositorio remoto, debe emitir algunos comandos para hacer cosas tan automatizadas como un repositorio clonado.

# GitHub gives you that instruction, you've already done that 
# git remote add origin [email protected]:user_name/repo_name.git 

# GitHub doesn't specify the following instructions 
git config branch.master.remote origin 
git config branch.master.merge refs/heads/master 

Estos últimos instrucciones de configurar git lo que el futuro git pull 's de esta cesión temporal se fusionarán todos los cambios remotos de forma automática.

Lo que sigue es un poco de autopromoción desvergonzada. Si utilizas Ruby, he creado una herramienta basada en Ruby que te permite tratar todo este tipo de cosas con las sucursales remotas de git. La herramienta se llama, como era de esperar, git_remote_branch :-)

Si no usas Ruby, es probable que mi herramienta sea demasiado complicada de instalar. Lo que puede hacer es mirar an old post on my blog, donde la mayoría de las cosas que grb puede hacer por usted se mostraron explícitamente. Saque su archivo de notas git :-)

+1

Esto era exactamente lo que estaba buscando. Estoy usando Ruby, pero también estoy tratando de aprender sobre Git y creo que hacerlo de la "manera difícil" es probablemente el mejor en este momento. :) –

+0

Ese es exactamente el punto de git_remote_branch. Cada vez que ejecuta un comando en su nombre, imprime en rojo los comandos que ejecuta para usted. Además, se puede usar como una hoja de prueba con el comando de explicación: grb explain create new_branch (en lugar del comando normal grb create new_branch) :-) – webmat

+1

"GRB: No significa simplemente ráfaga de rayos gamma". –

Cuestiones relacionadas