Próbuję wypchnąć jeden z moich projektów do github i wciąż pojawia się ten błąd:
peeplesoft@jane3:~/846156 (master) $ git push
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin master
Więc spróbowałem i otrzymałem to:
peeplesoft@jane3:~/846156 (master) $ git push --set-upstream origin master
fatal: Authentication failed
Inny wątek przepełnienia stosu sugerował, że wypróbowałem następujące, z rozczarowującymi wynikami.
peeplesoft@jane3:~/846156 (master) $ git push -u origin master
fatal: Authentication failed
Potem spróbowałem:
peeplesoft@jane3:~/846156 (master) $ git config remote.origin.push HEAD
peeplesoft@jane3:~/846156 (master) $ git push
fatal: Authentication failed
Jakieś wskazówki?
git
polecenia opublikowane przez PO, pomogły mi nawet bardziej niż odpowiedziOdpowiedzi:
Naprawiłeś wypychanie, ale niezależnie od tego problemu wypychania (który wyjaśniłem w „ Dlaczego muszę jawnie wypchnąć nowy oddział? ”:
git push -u origin master
Lubgit push -u origin --all
), musisz teraz rozwiązać problem z uwierzytelnianiem.To zależy od twojego adresu URL (ssh jak w '
[email protected]/yourRepo
lub https jak whttps://github.com/You/YourRepo
)W przypadku adresu URL https:
Jeśli Twoje konto jest chronione przez uwierzytelnianie dwuskładnikowe , zwykłe hasło nie będzie działać (dla adresu URL https), jak wyjaśniono tutaj lub tutaj .
Ten sam problem, jeśli hasło zawiera znak specjalny (jak w tej odpowiedzi )
Jeśli https nie działa (ponieważ nie chcesz generować klucza dodatkowego, PAT: osobistego tokena dostępu), możesz przełączyć się na ssh, jak pokazałem tutaj .
Jak zauważył qwerty w komentarzach, możesz automatycznie utworzyć gałąź o tej samej nazwie na pilocie za pomocą:
Czemu?
.git\HEAD
plik) ma refspec aktualnie wyrejestrowany oddziału (na przykładref: refs/heads/master
)Ponieważ refpec użyty do tego wypychania to head: (brak miejsca docelowego), brakujący
:<dst>
sposób zaktualizowania tego samego odwołania co<src>
(head, który jest gałęzią).To nie zadziała, jeśli HEAD zostanie odłączony .
źródło
git push origin head -u
. Automatycznie tworzy gałąź o tej samej nazwie na pilocie.Możesz także użyć następującego polecenia:
To tworzy (-u) kolejną gałąź w twoim zdalnym repozytorium. Po dokonaniu uwierzytelnienia za pomocą ssh to znaczy.
źródło
-u
opcja to skrót do--set-upstream
opcji, która nie ma nic wspólnego z tworzeniem nowej gałęzi. Z dokumentacji opcji-u
lub--set-upstream
: „Dla każdej gałęzi, która jest aktualna lub pomyślnie wypchnięta, dodaj referencję upstream (śledzenia), używaną przez bez argumentów git-pull [1] i inne polecenia.”. Właściwie nie rozumiem, dlaczego ta odpowiedź została tak wysoko oceniona, ponieważ wprowadza w błąd.Najwyraźniej ten komunikat o błędzie pojawia się również, gdy zapomnisz
--all
parametr przy pierwszym naciśnięciu. napisałemktóry dał ten błąd, powinien był być
Och, jak lubię te błędy kopiuj-wklej ...
źródło
Musisz najpierw skonfigurować pilota, a następnie nacisnąć.
Rzeczywiste instrukcje
źródło
Spróbuj tego scenariusza
źródło
Jeśli zdefiniujesz akcję,
git push
która powinna zostać podjęta, jeśli w wierszu poleceń nie podano polecenia refspec, nie jest on skonfigurowany w trybie zdalnym i żadna z opcji refspec nie jest sugerowana przez żadną z opcji podanych w linii poleceń.Po prostu to zrób:
następnie
źródło
Cóż, miałem takie same problemy podczas przesyłania i rozwiązałem to, robiąc to samo, co mówi: wcześniej próbowałem przepchnąć terminal do mojego repozytorium w systemie Linux przez https jak
Ale nie uzyskałem żadnego rezultatu, dlatego zszedłem głębiej i spróbowałem:
I zadziałało. W ten sposób zostanie wyświetlony monit o podanie nazwy użytkownika i hasła. Ja również wygenerowany token i zamiast Hasło ja wklejony token, a zatem zostało zrobione pomyślnie.
źródło
z bardzo prostej strony, kiedy już masz inne gałęzie, nie możesz po prostu użyć do pchania gałęzi
Ale musisz teraz określić gałąź, nawet jeśli masz kasę, którą chcesz przesłać, więc
Gdzie może być nawet
master
gałąźźródło
Popełniłem prosty błąd, zapominając o popełnieniu:
potem
git push origin master
pracował.źródło
Miałem ten sam problem
Rozwiązałem to, co użyłem poniżej polecenia
i doda konfigurację do pliku konfiguracyjnego w folderze .git.
źródło
Pierwsze użycie
git pull origin your_branch_name
Następnieuse git push origin your_branch_name
źródło
Jest na to proste rozwiązanie, które działało dla mnie na macOS Sierra. Zrobiłem te dwa polecenia:
Jeśli po każdym wypychaniu w przyszłości pojawi się błąd krytyczny dotyczący wysyłania danych, uruchom po prostu:
źródło
1. Komputer i twój github są powiązane. Użyj SSH. Kod komputerowy, więc nie musisz przesyłać zweryfikowanego, wprowadź opis obrazu tutaj
2. git nie może zarządzać pustym folderem. Musisz więc napisać taki plik readme.md zapisany w pliku. W przeciwnym razie nie znajdziesz pliku.
3. Twój projekt lokalny to nic nowego, co można przesunąć. Proszę
git init
git remote add origin +"githublink"
git add .
git commit -m ""
idź ponownie.4. następnie
git pull origin master
(klawisz)5. Wreszcie
git push origin master
(rozwiąż wszystkie problemy).http://my.oschina.net/psuyun/blog/123005参考 链接
źródło
Jeśli próbujesz przekazać kod bezpośrednio do gałęzi głównej, użyj polecenia
To pomaga mi.
źródło
Dostałem również ten sam błąd. Myślę, że to dlatego, że go sklonowałem i próbuję odpchnąć. $ git push -u origin master To jest właściwe polecenie. Spróbuj tego
Liczenie obiektów: 8, gotowe. Kompresja delta z wykorzystaniem maksymalnie 2 wątków. Kompresowanie obiektów: 100% (4/4), gotowe. Zapisywanie obiektów: 100% (8/8), 691 bajtów | 46,00 KiB / s, gotowe. Łącznie 8 (delta 1), ponownie wykorzystane 0 (delta 0) zdalne: Rozwiązywanie delt: 100% (1/1), gotowe.
[new branch] master -> master Master oddziału skonfigurowany do śledzenia zdalnego oddziału master od początku.
źródło
Miałem ten sam problem, ponieważ zapomniałem podać gałąź
źródło
Dla mnie przesuwałem zmiany do prywatnego repozytorium, do którego nie miałem dostępu do zapisu. Upewnij się, że masz ważne prawa dostępu podczas wykonywania operacji push lub pull.
Możesz bezpośrednio zweryfikować za pośrednictwem
źródło
Dla mnie to dlatego, że usunąłem ukryty folder .git .
Naprawiłem to, usuwając folder, ponownie klonując i ponownie wprowadzając zmiany.
źródło
Jeśli jesteś w dowolnym oddziale, możesz użyć tego:
Spowoduje to automatyczne utworzenie nowej gałęzi o tej samej nazwie na pilocie.
źródło
Aby rozwiązać ten problem, podczas sprawdzania samego kodu
git
, musisz wydać polecenie jak poniżej:git checkout -b branchname origin/branchname
Tutaj domyślnie ustawiamy
the upstream branch
, więc nie będziesz mieć do czynienia ze wspomnianym problemem.źródło
Dla mnie problem pochodzi od nazwy mojego oddziału: „# name-of-my-branch”, bez „#” działa dobrze!
źródło