2013-05-30 3 views
14

Я использую функцию Pages GitHub. Это работает, помещая опубликованный HTML в ветку с именем gh-pages. У меня есть два отдельных рабочих каталога: один для самого проекта и один для HTML-документов.Может git постоянно игнорировать удаленную ветку?

В первом, я хочу полностью игнорировать ветку gh-pages, так как это несвязанная линия работы, и я не хочу, чтобы она загромождала мои различные визуализации фиксации.

То есть, то, что у меня есть:

$ 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) 

и то, что я хочу, это что-то вроде:

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

Примечание Есть несколько ветвей, которые я сделать хотите отслеживать, и просто тот, который у меня нет. Я хочу указать последнее, а не первое.

Я могу удалить местные ссылки на origin/gh-pages, но затем он возвращается в следующий раз I git fetch.

ответ

5

Вы можете изменить .gitconfig, поэтому он говорит git принести только то, что вы просто хотите:

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

Кроме того, вы можете создать псевдоним для выборки, который получает то, что вы хотите:

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

создание псевдонима так просто, как добавление нового псевдонима в .gitconfig:

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

UPDATE:

Вы можете указать больше ветвей, конечно:

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

Есть ли что-то, что позволит мне получить все * кроме * чего я не хочу? В приведенном выше примере есть только одна удаленная ветвь, которую я хочу, но на самом деле их несколько, и это единственное, чего я не хочу. – Reid

+1

@Reid К сожалению, я не знаю об исключении из одной ветви. У меня в kleast есть обновление в ответе, в котором показано, как указать дополнительные ветви, которые хотите получить. –

+3

Одним из вариантов может быть использование сценария, подключенного к post-receive, для удаления ветви нарушения. Не все так долго думали, что ответить. – jb510

4

Я просто ударил с такой же проблемой. Меня интересовала одна ветка от «bob», но у него было много филиалов, загромождающих мой вывод git branch -a.

Я сделал это:

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

и ветви исчезли. Однако git fetch может их восстановить, но я не собираюсь регулярно выбирать из bob.

Смежные вопросы