В "git push" отказано в разрешении - PullRequest
1 голос
/ 02 ноября 2019

Несмотря на то, что я добавил ключ ssh в свою учетную запись git, когда я запускаю git push в удаленном репо, я получаю отказано в разрешении.

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC9TP2gLF0== mahmood@mahmood.com
$ git push -u origin mahmood
Username for 'https://github.com': mahmoodn
Password for 'https://mahmoodn@github.com':
remote: Permission to gunrock/gunrock.git denied to mahmoodn.
fatal: unable to access 'https://github.com/gunrock/gunrock/': The requested URL returned error: 403

Это «отказано в разрешении» в удаленном репокоторый я не являюсь участником или моей собственной учетной записью git?

ОБНОВЛЕНИЕ:

ОК. Сначала я должен ПРОБИТЬ репо в свою учетную запись (через Интернет), а затем установить источник на git remote set-url origin ssh://git@github.com/mahmoodn/gunrock.git, а затем git push -u origin mahmood.

Is теперь исправлено.

Ответы [ 2 ]

4 голосов
/ 02 ноября 2019

Здесь есть несколько проблем.

Во-первых, даже если вы добавили ключ SSH, похоже, вы все еще используете HTTPS-пульт. (Вы можете видеть все свои пульты с git remote -v.) Если вы хотите использовать SSH, вы должны изменить URL с https://github.com/gunrock/gunrock.git на ssh://git@github.com/gunrock/gunrock.git. Вы можете сделать это с помощью git remote set-url origin ssh://git@github.com/gunrock/gunrock.git.

Во-вторых, похоже, что вы пытаетесь отправить в хранилище gunrock/gunrock. Если это так, у вас нет разрешения на доступ к нему. Если бы вы пытались протолкнуть его на свою вилку, то, по всей вероятности, вы бы хотели подтолкнуть к ssh://git@github.com/mahmoodn/gunrock.git. Вы можете установить источник, как указано выше.

0 голосов
/ 02 ноября 2019

Как вы отметили в своем обновлении, теперь у вас есть два отдельных удаленных репозитория. Соглашение состоит в том, чтобы иметь два пульта: origin и upstream.

Ваш форк origin:

git remote set-url origin ssh://git@github.com/mahmoodn/gunrock.git

или его эквивалент

git remote set-url origin git@github.com:mahmoodn/gunrock.git

Keepс изменениями в gunrock/gunrock.git с помощью

git remote add upstream https://github.com/gunrock/gunrock.git

Теперь ветвь удаленного отслеживания upstream/master записывает, где родительский репозиторий имеет своего мастера. Обновите его с помощью

git fetch upstream

или

git fetch --all

Я рекомендую содержать ваш мастер в чистоте и всегда синхронизироваться с upstream/master.

git fetch --all
git checkout master
git merge --ff-only upstream/master
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...