Источник Git для удаленной выборки уже добавлен в файл .git / config, но все равно необходимо устанавливать «remote.origin.fetch» ​​каждый раз в git bash перед выполнением «git fetch» - PullRequest
0 голосов
/ 04 июля 2018

Мой файл .git / config в моем репозитории git уже содержит следующие настройки:

[remote "origin"]
    url = //URL to remote repo
    fetch = +refs/heads/*:refs/remote/origin/*

Тем не менее, когда я пытаюсь git fetch в моем git bash, он ничего не возвращает.

Но если я выполню git config remote.origin.fetch "+refs/heads/*:refs/remote/origin/*" в моем git bash перед выполнением git fetch, в нем будут перечислены все необходимые сведения об удаленных ветвях.

Почему я должен устанавливать его каждый раз перед выполнением git fetch? Есть ли способ, которым я не должен делать это каждый раз, когда я делаю git fetch?

1 Ответ

0 голосов
/ 06 июля 2018

Я только что проверил это на локальном клоне репозитория Git (https://github.com/git/git/)

Первый выбор ничего не возвращает

vonc@voncvb C:\Users\vonc\prog\git\git
> git fetch

Конфиг уже настроен на значение по умолчанию:

vonc@voncvb C:\Users\vonc\prog\git\git
> git config remote.origin.fetch
+refs/heads/*:refs/remotes/origin/*

Если я снова установлю конфигурацию и сделаю git fetch, я действительно вижу дополнительную информацию:

vonc@voncvb C:\Users\vonc\prog\git\git
> git config remote.origin.fetch "+refs/heads/*:refs/remote/origin/*"

vonc@voncvb C:\Users\vonc\prog\git\git
> git fetch
From https://github.com/git/git
 * [new branch]            master     -> refs/remote/origin/master
 * [new branch]            maint      -> refs/remote/origin/maint
 * [new branch]            next       -> refs/remote/origin/next
 * [new branch]            pu         -> refs/remote/origin/pu
 * [new branch]            todo       -> refs/remote/origin/todo

Но если я повторю команду git config снова (git config remote.origin.fetch "+refs/heads/*:refs/remote/origin/*") и введу дополнительные git fetch, они не вернут никакой новой информации (пустой вывод)

Это потому, что первый завершил FETCH_HEAD:

vonc@voncvb C:\Users\vonc\prog\git\git

> more .git\FETCH_HEAD
e3331758f12da22f4103eec7efe1b5304a9be5e9                branch 'master' of https://github.com/git/git
fc54c1af3ec09bab8b8ea09768c2da4069b7f53e        not-for-merge   branch 'maint' of https://github.com/git/git
fac676dfb9e0fea308fef5113ed7db2362fcdc9e        not-for-merge   branch 'next' of https://github.com/git/git
5fc3b55b9a8ca42699202482765d9768020ee313        not-for-merge   branch 'pu' of https://github.com/git/git
be70464a91c93a321dc16707dec820870df970d2        not-for-merge   branch 'todo' of https://github.com/git/git

Другими словами, он не получает никаких данных, он только обновляет уже выбранные ссылки.
Смотрите " Что означает FETCH_HEAD в Git? "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...