git small fetch не показывает ветки

Ранее я делал мелкое клонирование git с параметром --depth 1.

После этого я хочу получить конкретную ветку с удаленного устройства с глубиной 10 и оформить заказ на эту ветку.

Я могу получить ветку с удаленного компьютера, но ветка не отображается в git branch -a

Лог после замены личной информации ниже

User@PC-NAME MINGW64 /d/Folder/application (master)
$ git fetch --depth 10 origin branchname
remote: Counting objects: 18624, done.
remote: Compressing objects: 100% (10327/10327), done.
remote: Total 18624 (delta 12993), reused 12045 (delta 7599)
Receiving objects: 100% (18624/18624), 530.73 MiB | 1.36 MiB/s, done.
Resolving deltas: 100% (12993/12993), completed with 3067 local objects.
From 10.100.x.x:Repository/application
 * branch                branchname -> FETCH_HEAD

User@PC-NAME MINGW64 /d/Folder/application (master)
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

person Rishikesh Raje    schedule 11.05.2020    source источник
comment
stackoverflow.com/search?q=%5Bgit%5D+shallow+branches   -  person phd    schedule 11.05.2020
comment
@phd - Вышеупомянутый вопрос касается клонирования. Мой вопрос касается git fetch с параметром --depth. Я посмотрел на ответ, и он не решил проблему. Утвержденный ответ решил мою проблему,   -  person Rishikesh Raje    schedule 12.05.2020


Ответы (1)


Спецификация ссылки по умолчанию в неглубоком клоне упоминает только refs/heads/master (а не refs/heads/*, как в «обычном» клоне), поэтому git fetch не знает, какую локальную ссылку следует обновить, когда вы упоминаете только branchname.


Для одноразового обновления укажите явную спецификацию refspec в командной строке:

git fetch --depth 10 origin branchname:refs/remotes/origin/branchname

Для повторяющегося обновления добавьте refspec в свой .git/config :

# at the end of your [remote "origin"] section :
fetch = refs/heads/branchname:refs/remotes/origin/branchname
person LeGEC    schedule 11.05.2020
comment
Это сработало. Спасибо. Странно, что поведение мелкой выборки отличается. Также я узнал, что мне нужно сделать git remote set-branches origin branchname, чтобы настроить удаленное отслеживание. - person Rishikesh Raje; 11.05.2020