Я создал частный репозиторий examplesite / myprivaterepo, используя пользовательский интерфейс Github из моего браузера.
Затем я пошел в каталог go (на рабочем столе) и клонировал его:
$ cd $GOPATH
$ go get github.com/examplesite/myprivaterepo
Все идет нормально. Создал файл scheduler.go, добавил в репо и нажал.
$ vim scheduler.go
$ git add scheduler.go
$ git commit
$ git push
Все в порядке. Но когда я подошел к чистому ноутбуку и попытался клонировать репо, я получил ошибку:
# Now on laptop, which doesn't yet know about the repo
$ cd $GOPATH
$ go get github.com/examplesite/myprivaterepo
# At this point it should ask for my user ID and password ,right? But it doesn't.
# Instead, this error occurs:
cd .; git clone https://github.com/examplesite/myprivaterepo /Users/tom/go/src/github.com/examplesite/myprivaterepo
Cloning into '/Users/tom/go/src/github.com/examplesite/myprivaterepo'...
fatal: could not read Username for 'https://github.com': terminal prompts disabled
package github.com/examplesite/myprivaterepo: exit status 128
Почему мой ноутбук ненавидит мое собственное репо и как я могу заставить его принять его судьбу? Спасибо.
go
ошибка,git
она возвращает «терминал отключен». Можете ли вы работатьgit clone https://github.com/examplesite/myprivaterepo
на своем ноутбуке?https://github.com/
если путь импорта не существует. Процесс git должен иметь возможность запрашивать имя пользователя / пароль, поэтому в конфигурации ноутбука должно быть что-то другое - другая оболочка, другой .gitconfig, переменная env и т. Д.Ответы:
go get отключает «подсказку терминала» по умолчанию. Это можно изменить, установив переменную окружения git:
источник
Я нашел это чрезвычайно полезным, и это решило мою проблему. Эта команда позволит вашему 2FA сделать свое дело (и избавит вас от необходимости ввода имени пользователя и пароля):
Источник: http://albertech.blogspot.com/2016/11/fix-git-error-could-not-read-username.html
Если вы не используете 2FA, вы все равно можете использовать SSH, и это будет работать.
Изменить: добавлен
--add
флаг, как предложено slatunje .источник
git config --global --add url."git@github.com:".insteadOf "https://github.com/"
git@github.com: Permission denied (publickey). fatal: Could not read from remote repository.
.1-й -
go get
откажется аутентифицироваться в командной строке. Так что вам нужно кэшировать учетные данные в git. Поскольку я использую osx, я могу использовать помощник учетных данных osxkeychain.2-й Для меня, я включил 2FA и, следовательно, не мог использовать мой пароль для авторизации. Вместо этого мне пришлось сгенерировать личный токен доступа вместо пароля.
git clone https://github.com/user/private_repo
и использовал ваше имя пользователя github.com для имени пользователя и сгенерированный токен личного доступа для пароля.Удалил только что клонированный репо и проведите повторное тестирование, чтобы убедиться, что кредиты были кэшированы -
git clone https://github.com/user/private_repo
и на этот раз кредиты не запрашивались.источник
git clone
одно из моих собственных репозиториев (на самом деле оно публично), мне было предложеноusername
ввести мое имя пользователя GitHub, а затем вставить в сгенерированный токен дляpassword
- удалил клонированный репозиторий, затем повторно выполнилgo get
команду и все было хорошо - спасибо! (OSX здесь также)Если вы просто хотите
go get
работать очень быстро и двигаться вместе со своей работой ...Просто экспорт
GIT_TERMINAL_PROMPT=1
Теперь вам будет предложено указать пользователя / пароль для оставшейся части сеанса оболочки. Поместите это в ваш
.profile
или настройку,git
как указано выше, для более постоянного решения.источник
Он жалуется, потому что его нужно использовать
ssh
вместо,https
но ваш Git по-прежнему настроен с https. так что в основном, как уже упоминалось ранее, вам нужно либо включить приглашения, либо настроить использовать gitssh
вместоhttps
. простой способ сделать это, выполнив следующее:или, если вы уже используете
ssh
сgit
на вашем компьютере, вы можете безопасно редактировать~/.gitconfig
и добавить следующую строку в самом низуПримечание: это охватывает все SVC, контроль версий исходного кода, который зависит от того, что именно вы используете, github, gitlab, bitbucket)
Если вы хотите, чтобы пароли были отключены, вам необходимо кэшировать пароль. Для получения дополнительной информации о том, как кэшировать ваш пароль на GitHub на Mac, Windows или Linux, посетите эту страницу .
Для получения дополнительной информации о том, как добавить ssh в свою учетную запись github, посетите эту страницу .
Кроме того, что более важно, если это частный репозиторий для компании или для вас самого, вам может потребоваться пропустить использование базы данных прокси или контрольной суммы для таких репозиториев, чтобы избежать их публичного раскрытия.
Для этого вам нужно установить
GOPRIVATE
переменную среды, которая управляет тем, какие модули команда go считает закрытыми (недоступными публично) и поэтому НЕ должна использовать базу данных прокси или контрольной суммы.Переменная представляет собой разделенный запятыми список шаблонов (тот же синтаксис Go
path.Match
) префиксов пути модуля. Например,Или
И последнее, что не стоит забывать упомянуть, вы все равно можете настроить
go get
аутентификацию и выборкуhttps
, все, что вам нужно сделать, это добавить следующую строку в$HOME/.netrc
Я надеюсь, что это помогает сообществу и экономит время других для быстрого решения описанных проблем. Пожалуйста, не стесняйтесь оставлять комментарии, если вам нужна дополнительная поддержка или помощь.
источник
GOPRIVATE
(go env -w GOPRIVATE=github.com/mycompany/*
) это единственное, что сработало для меня. Я мог бы предложить поместить это под своим собственным заголовком или даже в своем собственном ответе, чтобы подчеркнуть это немного больше.Если вы сконфигурируете свой gitconfig с этой опцией, у вас позже будет проблема клонировать другие репозитории GitHub
Вместо этого я рекомендую вам использовать эту опцию
и не забудьте сгенерировать токен доступа из вашего личного репозитория. Когда будет предложено ввести пароль, просто вставьте токен доступа. Счастливый клон :)
источник
У меня была та же проблема с окнами: «ошибка: не удалось выполнить скрипт приглашения (код выхода 1). Неустранимый: не удалось прочитать имя пользователя для« https://github.com »: нет ошибки» при попытке войти в github через диалог входа в систему. Когда я отменил диалог, git попросил меня ввести логин и пароль в командной строке, и все заработало нормально.
источник