2015-02-22 7 views
1

Я создал новый филиал на моем пульте, так что я бы ожидать, чтобы сделать это:GIT не извлечение мой новый филиал

$ git fetch && git checkout feature/name 

Однако, я получаю эту ошибку:

error: pathspec 'feature/name' did not match any file(s) known to git. 

Когда я запускаю git fetch сам по себе, он ничего не возвращает, я также пробовал git fetch origin, который тоже не работает.

git remote возвращает только один пульт, называемый origin.

Моя конфигурация выглядит следующим образом:

[core] 
    repositoryformatversion = 0 
    filemode = true 
    bare = false 
    logallrefupdates = true 
    ignorecase = true 
    precomposeunicode = true 
[remote "origin"] 
    url = removed as it is a private repo 
    fetch = +refs/heads/staging:refs/remotes/origin/staging 
[branch "staging"] 
    remote = origin 
    merge = refs/heads/staging 
+0

Вы можете использовать 'git pull' – Rufinus

+0

Но моя ветка еще не существует. И я не создал ветвь в своем локальном репо и, возможно, не имел бы ветви исходной ветви, от которой ветвь удалена. –

+2

Ваша строка origin.fetch не является значением git по умолчанию. Нормальным является 'remote.origin.fetch = + refs/heads/*: refs/remotes/origin/*' –

ответ

0

Если вы на GIT> 1.9.X у вас есть по умолчанию выше со значением simple.

Если вы хотите, чтобы все ветви и теги, вы должны использовать: git fetch --all --prune
--all будет получать все ветви и теги
--prune удалит все удаленные филиалы и теги

Флаги будут применяться в вашем локальном хранилище.

1

Согласно замечанию Андрея С. Я изменил fetch строки в моем мерзавце конфигурации к этому:

fetch=+refs/heads/*:refs/remotes/origin/* 
1

Исправления исправьте параметр remote.origin.fetch, например,

git config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*' 

так что все ветви могут быть извлечены. См.: How to fetch all remote branches?

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