Domanda

Quindi, newbie totale a Git. Leggendo attraverso le guide e credo di avere le nozioni di base, ma sto avendo difficoltà realizzazione di questo unico obiettivo.

Ho un repo creata per il mio codice sorgente di markup generico. Solo roba io riutilizzo per ogni breakout. Si chiama markupDNA.git

Mi piacerebbe avere diverse directory nei miei siti mac ~/Sites/project-N dir. Dove posso costruire sulla roba generica e fare un breakout di un sito. Vorrei questi per essere legato al mio principale repo git come forchette, ma non si può sborsare il proprio repo?

Vorrei poter fare qualcosa di simile:

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

Ma io non lo voglio spingere alla loro origine. Voglio che per spingere ad un bivio della repo markupDNA dove è stato clonato. Ma sembra che solo spinge i miei cambiamenti fino nel master origine. L'idea è di mantenere il markupDNA pulito e appena hanno un sacco di forcelle per i miei progetti diversi, ognuno dei quali avrà il proprio dir clonato sul mio disco rigido.

Tutte le idee?

È stato utile?

Soluzione

Probabilmente sarà molto più facile da usare rami , piuttosto che utilizzare forchette separati . È ancora possibile avere casse separate per ogni ramo; basta clonare il vostro repo più volte, e l'uso git checkout in ognuno per passare al ramo appropriata (o git checkout -b per creare il ramo e check it out tutto in una volta). Dopo aver creato i rami, li si può spingere a GitHub utilizzando git push origin <branchname>.

Altri suggerimenti

Si sta facendo la cosa giusta.

cd ~/Sites/
git clone ~/Dev/markupDNA/ project-N
cd project-N
git remote rename origin markupDNA
  • Nav alla cartella in cui vengono archiviati i progetti
  • clone vostra base markupDNA pronti contro termine con nome personalizzato
  • rinomina il telecomando in modo che se si desidera un 'origine' tardi, puoi

per fare vera forcella GitHub del proprio repository è possibile utilizzare questa procedura:

  1. Crea un organizzazione
  2. Dalla tavola ai organizzazione
  3. Rinomina biforcuta progetto
  4. tornare al tuo account

Sorpreso nessuno ha fatto riferimento di questo ragazzo Post ancora.

Ecco le fasi rilevanti:

$ 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

Invece di modificare la configurazione, di solito utilizzare una combinazione di git remote remove e git remote add.

Si potrebbe anche usare git remote rename seguito da git remote add se si voleva mantenere l'origine monte intorno.

Questo tutorial dà una semplice e risposta diretta:

  1. Crea un nuovo github vuoto forkedreporepository
  2. Clone localmente:

    git clone https://github.com/YOURUSERNAME/forkedrepo.git
    
  3. Aggiungere il repository github originale come a distanza del nuovo repository locale:

    git remote add upstream https://github.com/YOURUSERNAME/originalrepo.git
    
  4. Tirare giù una copia del repository GitHub originale al nuovo repository locale:

    git pull upstream master
    
  5. Spingere i file dal nuovo repository locale per nuovo repository GitHub:

    git push origin master
    

Questo non sarà riconosciuto da github come una forcella del deposito originario, fuori rotta, ma questo è buono come ottiene.

Certo si può clonare da un clone. In git non esiste il concetto di un pronti contro termine principale. La gente spesso designano un pronti contro termine principale, ma che è per convenzione, non a causa di una ragione tecnica.

Quindi, si può fare tutto esattamente come lei e anche di più.

Per esempio ha senso mantenere una filiale nei vostri siti breakout con idee per aggiunte o modifiche al vostro roba generico. Si può tirare questi in su verso il vostro repo generica e distribuire di nuovo da lì.

È inoltre possibile utilizzare di Github strumento di importazione .

(che è fatto per l'importazione da SVN, ecc, ma è possibile utilizzarlo anche per questo)

  • Crea nuovo repository Github. Importante : non "di inizializzazione con un README"
  • Nella schermata successiva fare clic su "Importa codice"
  • Incolla l'URL della Github pronti contro termine che si desidera importare. ( screenshot )

Ancora una volta, questo crea un nuovo repository e non una vera forcella su Github. Ma tutti i tuoi rami, la storia, ecc ci saranno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top