2011-07-16 10 views
7

Soy nuevo con Git y GitHub, así que tengan paciencia conmigo. Tengo un repositorio vacío en GitHub con una rama creada automáticamente (gh-páginas), que, según tengo entendido, se supone que debe usarse con la funcionalidad de páginas de GitHub.Comenzando con GitHub y Eclipse (fuente de primavera toolsuite 2.7.1)

Ahora lo que me gustaría hacer es crear y eclipsar un proyecto desde el que pueda enviar/enviar a este repositorio.

Lo que me confunde es que no puedo ver ninguna opción para crear una rama remota en github. Supongo que presionar mi fuente a gh-pages no será una buena idea. Por cierto, tampoco entiendo por qué las páginas de GitHub es una función implementada como una rama? No se supone que las ramas se fusionen entre sí en algún momento. Claramente, no tendría sentido fusionar páginas github en mi proyecto. ¿No sería mejor tener una carpeta dentro de mi proyecto para este propósito?

Busqué en Google y encontré esto link pero al ser un git noob no estoy seguro de si eso es lo que quiero hacer. Me gustaría utilizar Eclipse como mi interfaz principal para que git y github solo vuelvan a la línea de comandos u otras interfaces cuando no hay otra opción.


OK Creo que lo he descubierto. Básicamente, lo que necesita es definir una referencia remota que no necesita existir antes.

  1. Crear un proyecto
  2. Team-> Compartir a un repositorio local
  3. En la vista de repositorio (Ventana-> Mostrar Ver-> Git -> Repositorios) seleccionar el repositorio local y haga clic derecho en los mandos a distancia
  4. Seleccionar nuevo control remoto (configurar push). Escriba origen en el nombre remoto. Presione OK
  5. Cambiar URL. Copie/pegue el ssh uri de github. Seleccione el protocolo ssh (asegúrese de tener la clave ssh definida en las preferencias SSH del eclipse y cargada en github)
  6. Ahora la última parte es agregar el mapeo Ref. Haga clic en Agregar ... en la sección de asignación de ref de la pantalla. Y ingrese refs/heads/master en las ramas local y remota.

o puede ser el refs/heads/master en ambos lados no es una buena idea :) veo, la clonación de un acuerdo de recompra github que no tiene gh-páginas rama es más sencillo, ya que crea automáticamente esta especificación traiga a distancia

Fetch remoto Especificación +refs/heads/*:refs/remotes/origin/*

Tal vez esto es lo que necesito para entrar en el paso 6 anterior


Bien, ya que resultó que la idea original de "refs/heads/master en la rama local y remota" era correcta. Al presionar con esta configuración, muestro mis cambios en git hub correctamente. La segunda opción, por otro lado, falla en silencio.

+0

Hombre incluso '13 tu pregunta me salvó. – happybuddha

Respuesta

4

Las ramas normalmente se usan de la manera descrita, pero nada dice que se debe usar de esa manera. Esta es la forma en que github eligió para permitirle administrar el contenido de su página, y funciona bastante bien. Es similar a hospedar varios repositorios en un servidor SVN.

En cuanto a la creación de nuevos repositorios, si crea un repositorio en github y luego lo clona, ​​tendrá un repositorio vacío localmente que ya apunta a github con un control remoto llamado "origen". Esta es una forma conveniente de comenzar, ya que no tiene que preocuparse por agregar un control remoto usted mismo. En este punto, su repositorio no tiene commits ni ramas en él. Cuando realice la primera confirmación, establecerá automáticamente una rama llamada "maestra". No sé cómo se configura eclipse por defecto, pero desde la línea de comandos con la configuración predeterminada, tiene que empujar explícitamente nuevas ramas a un control remoto o de lo contrario no se presionarán. Es decir. hacer el primer commit y hacer git push simplemente fallará con un mensaje como "No hay referencias en común y ninguna especificada; no se hace nada". En su lugar, tiene que git push origin master para decirle que establezca la rama "principal" en "origen" remoto (también conocido como github). A partir de entonces, solo un git push funcionará bien.

Espero que aclare algo de su confusión.