2013-05-30 13 views
14

Używam funkcji Strony w GitHub. Działa to poprzez umieszczenie opublikowanego kodu HTML w oddziale o nazwie gh-pages. Mam dwa osobne katalogi robocze, jeden dla samego projektu i jeden dla dokumentów HTML.Czy git może trwale zignorować oddział zdalny?

W pierwszym z nich chcę całkowicie zignorować gałąź gh-pages, ponieważ jest to niepowiązana linia robocza i nie chcę, aby zaśmiecała ona moje różne wizualizacje zatwierdzeń.

To, co mam jest:

$ git remote show origin 
* remote origin 
    Fetch URL: [email protected]:reidpr/quac.git 
    Push URL: [email protected]:reidpr/quac.git 
    HEAD branch: master 
    Remote branches: 
    bar    tracked 
    foo    tracked 
    gh-pages   tracked 
    master   tracked 
    Local branches configured for 'git pull': 
    master merges with remote master 
    Local refs configured for 'git push': 
    master pushes to master (up to date) 

i czego chcę jest coś takiego:

$ git remote show origin 
    [...] 
    Remote branches: 
    bar    tracked 
    foo    tracked 
    gh-pages   ignored 
    master   tracked 
    [...] 

Uwaga istnieje kilka oddziałów, które robię chcesz śledzić, i tylko taki, którego nie mam. Chcę określić ten drugi, a nie pierwszy.

Mogę usunąć lokalne odniesienia do origin/gh-pages, ale potem wróci następnym razem I git fetch.

Odpowiedz

5

Można zmodyfikować .gitconfig, więc to mówi git tylko pobierać co tylko chcesz:

fetch = +refs/heads/mybranch:refs/remotes/origin/mybranch 

Ponadto, można utworzyć alias dla sprowadzić który pobiera co chcesz:

git fetch origin +refs/heads/mybranch:refs/remotes/origin/mybranch 

utworzenie aliasu jest tak proste, jak dodanie nowego aliasu w .gitconfig:

[alias] 
    myfetch= git fetch origin +refs/heads/mybranch:refs/remotes/origin/mybranch 

UPDATE:

Można określić więcej oddziałów przedmiotu:

git fetch origin +refs/heads/master:refs/remotes/origin/master +refs/heads/develop:refs/remotes/origin/develop 
+4

Czy jest coś, co pozwoli mi sprowadzić wszystko * z wyjątkiem * czego nie chcę? W powyższym przykładzie jest tylko jedna gałąź zdalna, której potrzebuję, ale w rzeczywistości jest ich kilka, a ja tylko nie chcę. – Reid

+1

@Reid Unfortunatelly, nie wiem o direect wykluczenia z jednego konkretnego oddziału. Mam w firmie kleast pod warunkiem aktualizacji w odpowiedzi, która pokazuje, jak określić więcej gałęzi, które chcą być pobrane. –

+3

Jedną opcją może być użycie skryptu podpiętego do post-receive, aby usunąć szkodliwą gałąź. Nie w pełni pomyślałem, że aż do odpowiedzi. – jb510

4

prostu hit ten sam problem. Interesowało mnie jedno odgałęzienie od "boba", ale miał wiele gałęzi, które zajmowały moje dane wyjściowe.

Zrobiłem to:

rm .git/refs/remotes/bob/{next,master,maint} 

a gałęzie zniknęły. Może jednak ich przywrócić git, ale nie zamierzam regularnie ściągać z boba.