2013-02-15 15 views
12

Stworzyłem projekt Laravel "boilerplate", który zawiera moje powszechnie używane funkcje/biblioteki.Tworzenie nowych projektów z istniejącego repozytorium "boilerplate"

Jaki jest prawidłowy proces Git dla wykorzystania tego zestawu danych jako podstawy dla nowych projektów? Mogę wymyślić dwie opcje:

  1. Widelec boilerplate do newproject i rozpocząć. Nie mam zamiaru ciągnąć zmian newproject z powrotem do boilerplate.
  2. Klon boilerplate i zaktualizuj zdalny początek do nowego czystego repozytorium.

Pochylam się do drugiej opcji, ponieważ wydaje mi się, że jest to czysty, czysty podział z kodu standardowego. Czy w ten sposób tracę jakieś fajne możliwości?

Odpowiedz

12

Zważywszy zostanie przechowywania projekt na Github z jednej szablonów zawartych w boilerplate projektu GitHub, byłbym:

  • Utwórz nowy pusty repo na GitHub (bez związku z boilerplate nie need for a fork)
  • klon to
  • klon boilerplate w innym miejscu na dysku
  • skopiować właściwej szablon z lokalnym boilerplate Sklonuj do nowego sklonowanego lokalnie Githuba repo
  • (git add, git commit) Przekaż ten szablon do nowego repozytorium Github.
  • rozpocząć pracę stamtąd
+13

Inną opcją byłoby sklonowanie 'boilerplate', usunięcie' .git', a następnie 'git init',' git add .' , 'git commit' – aragaer

+0

@aragaer nie zapominaj, że' boilerplate' może zawierać wiele szablonów do wyboru (może nie być w tym przypadku), a także musisz zresetować zdalny 'origin'url. Twierdzę, że moja droga jest łatwiejsza. – VonC

+0

Usuwanie '.git' resetuje wszystko git.Ale zgadzam się na posiadanie kilku szablonów. – aragaer

3

"Widelec" nie jest koncepcją Git. Czy mylisz Gita z Githubem? Jeśli masz na myśli rozwidlenie projektu na Githubie, to jest to samo, co klonowanie repo, a klonowanie brzmi jak to, czego szukasz. Po prostu nigdy nie wprowadzisz zmian z powrotem do repozytorium "boilerplate". Można jednak użyć scalania lub rebazy w celu wciągnięcia aktualizacji do repozytorium standardowego w projekty, które się z niego wiążą. Jeśli nic takiego nie jest pożądane, to po co to robić z Git? Po prostu utwórz rekurencyjną kopię katalogu i zacznij od tego miejsca.

+0

Wymaga to ręcznego ustawienia upstreamu, aby zmiany nie zostały wprowadzone do repozytorium! https://help.github.com/articles/changing-a-remote-s-url/ –

3

nic złego @ odpowiedź VonC, ale można alternatywnie użyć hub stworzyć a one-liner które skutecznie inits nowe repo (lokalnie i zdalnie) opartą na repo materiału siewnego:

clonefork() { 
    hub clone "$1" 
    cd "${1##*/}" 
    hub fork 
} 

W swojej powłoce:

$ clonefork user/seed-repo 

Przez "cloneforking" Twój repo nasion, można również uzyskać a network graph pokazujące wszystkie wygenerowane z niego repozytorium.

Powiązane problemy