Stworzyłem fork (nazwijmy to myrepo
) innego repozytorium (nazwijmy to orirepo
) na GitHub. Później sklonowałem orirepo
.
git clone https://github.com/original/orirepo.git
Zmodyfikowałem około 20 plików, potem wystawiłem zmianę i zatwierdziłem
git add
git commit
Jednak gdy próbowałem naciskać
git push
Mam ten błąd:
remote: Permission to original/orirepo.git denied to mylogin.
fatal: unable to access 'https://github.com/original/orirepo.git/': The requested URL returned error: 403
Wiem, że popełniłem błąd: powinienem raczej sklonować widelec niż orirepo
, ale teraz jest na to za późno. Jak mógłbym naciskać na mój fork zamiast do origin/orirepo
, do którego nie mam uprawnień do zapisu?
git remote set-url origin http://github.com/myname/reponame
i wtedygit push origin mybranch
. Pracowałem! Dziękuję Ci!git push -u myrepo master
powoduje , że lokalny master rozpoczyna śledzeniemyrepo/master
. Jeśli po tym będziesz biecgit pull
na master, będziesz ciągnął zmyrepo
, a już nieorigin
.Więc sklonowałeś czyjeś repozytorium, wprowadziłeś zmiany, a następnie zdałeś sobie sprawę, że nie możesz naciskać na to repozytorium, ale możesz pushować do własnego forka. Więc poszedłeś naprzód i rozwidliłeś oryginalne repozytorium.
Wszystko, co musisz zrobić, to zamienić pierwotny adres URL w lokalnym klonie na adres URL rozwidlonego repozytorium.
Zrób to w ten sposób
Gdzie
https://github.com/fork/name.git
jest adres URL twojego fork z oryginalnego repozytorium.Po tym tylko
i będziesz mógł wprowadzić zmiany do widelca :)
źródło
Okej, w końcu wyedytowałem mój plik konfiguracyjny git:
zmiana:
do
Następnie,
Działał jak urok.
Lub, dzięki odpowiedzi Thiago F Macedo :
źródło
Najpierw powinieneś sklonować rozwidlone repozytorium na swoim koncie.
Masz absolutnie uprawnienia do wypychania do tego repozytorium. Jeśli chcesz przesłać kod do oryginalnego repozytorium, możesz wysłać żądanie ściągnięcia.
źródło