Pregunta

Así, novato total a Git. Estado leyendo a través de las guías y creo que tengo lo básico, pero estoy teniendo dificultades para llevar a cabo esto un objetivo.

Tengo una cesión temporal creada para mi código fuente de marcado genérico. Sólo cosas que reutilizar para cada ruptura. Se llama markupDNA.git

Me gustaría tener diferentes directorios en mis sitios mac ~/Sites/project-N dir. Cuando construyo sobre el material genérico y hacer una ruptura de un sitio. Me gustaría que estos sean atadas a mi principal repositorio git como horquillas, pero no se puede bifurcar su propio repo?

Me gustaría poder hacer algo como esto:

git clone <url> name
git add .
# make changes
git commit -m 'whatever'
git push

Pero no quiero que empuje al origen. Quiero que empuje a un tenedor de la cesión temporal markupDNA de donde fue clonado. Pero parece que sólo empuja mis cambios hasta en el maestro de origen. La idea es mantener el markupDNA limpia y sólo tienen una gran cantidad de horquillas para mis diferentes proyectos, cada uno de los cuales tendrá su propio dir clonado en mi disco duro.

¿Alguna idea?

¿Fue útil?

Solución

Probablemente será mucho más fácil de usar ramas , en lugar de utilizar horquillas separadas . Usted todavía puede tener cajas separadas para cada rama; solo clon de tu repositorio varias veces, y el uso git checkout en cada uno para cambiar a la rama apropiada (o git checkout -b para crear la rama y comprobar que funciona a la vez). Una vez que haya creado las ramas, puede empujarlos a GitHub usando git push origin <branchname>.

Otros consejos

Lo estás haciendo lo correcto.

cd ~/Sites/
git clone ~/Dev/markupDNA/ project-N
cd project-N
git remote rename origin markupDNA
  • Nav a la carpeta donde se almacenan los proyectos
  • clon de su base de markupDNA cesión temporal con el nombre de encargo
  • cambiar el nombre del mando a distancia de modo que si usted quiere un 'origen' más adelante, puede

para hacer realidad tenedor GitHub del propio repositorio puede utilizar estos pasos:

  1. Crear una organización
  2. Tenedor de organización
  3. Cambiar nombre bifurcó proyecto
  4. Mover hacia atrás a su cuenta

Sorprende que nadie ha hecho referencia a este tipo de Entrada de blog todavía.

A continuación los pasos correspondientes:

$ git clone git@github.com:YOURNAME/foo.git bar
$ cd bar
$ vim .git/config
[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git@github.com:YOURNAME/bar.git #replace foo with bar
$ git remote add upstream git@github.com:YOURNAME/foo.git
$ git push -u origin master

En lugar de editar la configuración, por lo general utilizan una combinación de git remote remove y git remote add.

También podría usar git remote rename seguido por git remote add si se quería mantener el origen aguas arriba alrededor.

Este tutorial da una respuesta directa y sencilla:

  1. Crear un nuevo github vacío forkedreporepository
  2. Clonar localmente:

    git clone https://github.com/YOURUSERNAME/forkedrepo.git
    
  3. Añadir el repositorio GitHub original como a distancia del nuevo repositorio local:

    git remote add upstream https://github.com/YOURUSERNAME/originalrepo.git
    
  4. Tire hacia abajo de una copia del repositorio GitHub original a su nuevo repositorio local:

    git pull upstream master
    
  5. Empuje los archivos de su nuevo repositorio local para nuevo repositorio GitHub:

    git push origin master
    

Esto no será reconocido por GitHub como tenedor del repositorio original, por supuesto, pero esto es tan bueno como se pone.

Claro que se puede clonar a partir de un clon. En git no existe el concepto de un acuerdo de recompra principal. La gente a menudo designan un acuerdo de recompra principal, pero eso es por convención, no debido a una razón técnica.

Así que usted puede hacer todo exactamente como lo describen y aún más.

Por ejemplo, tiene sentido para mantener una sucursal en sus sitios de ruptura con las ideas de adiciones o modificaciones a su material genérico. Puede tirar de ellos hacia tu repositorio genérico y distribuir de nuevo desde allí.

También puede utilizar de Github herramienta de importación .

(que está hecho para importar desde SVN, etc, pero se puede utilizar para esto también)

  • Crear nuevo repositorio en Github. IMPORTANTE : no "initialize con un README"
  • En la siguiente pantalla haga clic en "Importar código"
  • Pegar la URL a la Github reporto que desea importar. ( pantalla )

Una vez más, esto está creando un nuevo repositorio y no un verdadero tenedor en Github. Pero todas sus ramas, historia, etc. estarán allí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top