Мастер происхождения git pull возвращает фатальный: недопустимый refspec
Вот проблема:
Всякий раз, когда я делаю
$ git pull 'https://github.com/username/reponame.github.io.git'
с последующим URL я не получаю никаких проблем, но когда я делаю
git pull origin master 'https://github.com/username/reponame.github.io.git'
с последующим URL возвращает
fatal: Invalid refspec 'https://github.com/username/reponame.github.io.git'
Что это значит и как мне это исправить?
2 ответа
Если вы уже установили удаленное отслеживание филиалов (т.е. git clone
делает это автоматически) и хочет использовать git pull
с намерением получить и объединить последние коммиты для текущей ветки из удаленного репозитория, я полагаю, что будет достаточно выполнить следующее:
git pull
Для достижения того же эффекта с включением refspec (излишне многословно):
// Pulls the remote 'master' branch down to the local 'master' branch
git pull origin master:refs/remotes/origin/master
Вы получаете эту ошибку, потому что предоставление URL-адреса не соответствует формату refspec.
Для получения дополнительной информации о том, как работает refspec и его синтаксис, обратитесь к этой главе из замечательной книги Pro Git. Надеюсь, это поможет!
Пожалуйста, объясните, что ваш git pull origin master 'https://github.com/username/reponame.github.io.git'
колл должен делать (по твоему мнению)?
Если вы хотите извлечь ветку "master" из репозитория, используя его явный URL, то команда для вызова будет
git pull https://github.com/username/reponame.github.io.git master
потому что "origin" - это просто имя так называемого "удаленного имени", которое является своего рода настроенным псевдонимом для репозитория, который позволяет вам не вводить URL этого репо каждый раз, когда вы получаете к нему доступ.
Канонический призыв к git pull
является
git pull [<repo> [<refspec> ...]]
где части в [...]
являются необязательными - см. страницу руководства.