Z jakiegoś powodu nie mogę teraz naciskać, podczas gdy mógłbym to zrobić wczoraj. Może popełniłem błąd przy konfiguracji lub coś takiego.
Oto co się dzieje:
Kiedy używam git push master master

Jak wygląda mój katalog roboczy i zdalne repozytorium:

Z jakiegoś powodu nie mogę teraz naciskać, podczas gdy mógłbym to zrobić wczoraj. Może popełniłem błąd przy konfiguracji lub coś takiego.
Oto co się dzieje:
Kiedy używam git push master master

Jak wygląda mój katalog roboczy i zdalne repozytorium:

Odpowiedzi:
Jeśli w repozytorium GitHub pojawiły się nowe zatwierdzenia, podczas gdy pracujesz lokalnie, radzę użyć:
git pull --rebase
git push
Pełna składnia to:
git pull --rebase origin master
git push origin master
Z Git 2.6+ (wrzesień 2015), po zrobieniu tego (raz)
git config --global pull.rebase true
git config --global rebase.autoStash true
Wystarczyłoby proste git pull.
(Uwaga: z Git 2.27 Q2 2020 , A merge.autostashjest także dostępna dla zwykłego naciągu, bez rebase)
W ten sposób, byś odtworzyć (w --rebaseczęści) zobowiązuje lokalnych na szczycie nowo zaktualizowane origin/master(albo origin/yourBranch: git pull origin yourBranch).
Zobacz pełniejszy przykład w rozdziale 6 Pull with rebase of Git Pocket Book .
Poleciłbym:
# add and commit first
git push -u origin master
Ustanowiłoby to relację śledzenia między lokalnym oddziałem głównym a jego odgałęzieniem.
Następnie wszelkie przyszłe działania wypychające dla tej gałęzi można wykonać za pomocą prostego:
git push
Zobacz „ Dlaczego muszę jawnie wcisnąć nowy oddział? ”.
Skoro PO już reset i przerobione jego popełnienia na górze origin/master:
git reset --mixed origin/master
git add .
git commit -m "This is a new commit for what I originally planned to be amended"
git push origin master
Nie ma takiej potrzeby pull --rebase.
Uwaga: git reset --mixed origin/mastermożna również napisać git reset origin/master, ponieważ --mixedopcja jest domyślna podczas korzystania git reset.
Czy ktoś próbował:
git push -f origin master
To powinno rozwiązać problem.
EDYCJA: W oparciu o komentarz @Mehdi poniżej muszę coś wyjaśnić
—force pushing. Powyższe polecenie git działa bezpiecznie tylko dla pierwszego zatwierdzenia. Jeśli poprzednio były już zatwierdzenia, żądania ściągania lub gałęzie, resetuje to wszystko i ustawia od zera. Jeśli tak, zapoznaj się ze szczegółową odpowiedzią @VonC, aby uzyskać lepsze rozwiązanie.
-f/ --forcezawsze zawsze jest bezpieczniej używać --force-with-leasetego, co zostanie przerwane, jeśli pojawią się zmiany, które zostałyby zablokowane przez wypychanie. --force-with-leasejest wymagany w wielu codziennych sytuacjach bazowania, ale --forceprawie nigdy nie powinien być potrzebny.
Jeśli po prostu użyłeś git initi dodałeś swoje pliki git add .lub coś podobnego i dodałeś zdalną gałąź, być może nie popełniłeś ( git commit -m 'commit message') niczego lokalnie, aby pchnąć do zdalnego ... Właśnie miałem ten błąd i to był mój kwestia.
Miałem ten sam problem. Otrzymywałem ten problem, ponieważ nie dokonałem żadnego zatwierdzenia, nawet początkowego, i wciąż próbowałem je popchnąć.
Raz to zrobiłem, git commit -m "your msg"a potem wszystko działało dobrze.
Zmień nazwę swojego oddziału, a następnie wypchnij, np .:
git branch -m new-name
git push -u new-name
To zadziałało dla mnie.
my-branch_wont_push. Raz zmieniłem nazwę na my_branch_wont_push, a potem git push -u origin my_branch_wont_pushpracowałem dla mnie.
Rozwiązanie tego problemu znajduję w pomocy github.
Można to zobaczyć na stronie: Radzenie sobie z błędami niezwiązanymi z szybkim przewijaniem do przodu
To mówi:
Możesz to naprawić, pobierając i scalając zmiany wprowadzone w zdalnej gałęzi ze zmianami, które wprowadziłeś lokalnie:
$ git fetch origin
# Fetches updates made to an online repository
$ git merge origin branch
# Merges updates made online with your local work
Lub możesz po prostu użyć git pull, aby wykonać oba polecenia jednocześnie:
$ git pull origin branch
# Grabs online updates and merges them with your local work
git init
git remote add origin https://gitlab.com/crew-chief-systems/bot
git remote -v (do sprawdzania bieżącego repozytorium)
git add -A(dodaj wszystkie pliki)
git commit -m 'Added my project'
git pull --rebase origin master
git push origin master
Napotkałem ten sam problem, rozwiązany za pomocą poniższych kroków.
git initgit add .git commit -m 'Add your commit message'git remote add origin https://User_name@bitbucket.org/User_name/sample.git
( Powyższy adres URL https: //User_name@bitbucket.org/User_name/sample.git odnosi się do adresu URL twojego projektu wiadra bitów)
git push -u origin masterWskazówka
sprawdź, czy twoje konto git hub łączy się z lokalnym gitem, używając:
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
przed wypychaniem musisz dodać i zatwierdzić zmiany lub zrobić git push -f origin master
git push origin {your_local_branch}:{your_remote_branch}
Jeśli oddział lokalny i oddział zdalny mają tę samą nazwę, możesz pominąć nazwę oddziału lokalnego, po prostu użyj git push {your_remote_branch}. W przeciwnym razie wygeneruje ten błąd.
Wykonałem następujące kroki i zadziałało to dla mnie.
rm -rf .git
git init
git add .
git commit -m"first message"
git remote add origin "LINK"
git push -u origin master
Może się to zdarzyć, gdy nie masz żadnych plików. Spróbuj utworzyć plik tekstowy, a następnie postępuj zgodnie z następującymi poleceniami
git add .
git commit -m "first commit"
git push --set-upstream origin master
Najlepsze wykorzystanie, rm -rf .git/hooksa następnie spróbuj git push
W GitHub utworzyłem puste repozytorium i mam swój kod lokalnie. Napotkałem ten sam problem, postępując zgodnie z poniższą sekwencją,
git init
git commit -m 'Initial Commit'
git remote add origin https://github.com/kavinraju/Repo-Name.git
git add .
git push -u origin master
PROBLEM BYŁ: Próbowałem zatwierdzić przed umieszczeniem plików, które posiadam.
POTRZEBUJEMY ZAPAMIĘTOWAĆ PLIKI, A NASTĘPNIE ZAANGAŻOWAĆ.
To jest poprawna sekwencja.
git init
git add .
git commit -m 'Initial Commit'
git remote add origin https://github.com/kavinraju/Repo-Name.git
git push -u origin master
Ponieważ najpierw wykonuję nieprawidłową sekwencję, po prostu wykonuję poniższe polecenia
git add .
git commit -m 'Initial Commit'
git push -u origin master
Nie jestem pewien, czy to dotyczy, ale dla mnie poprawką było zatwierdzenie czegoś lokalnie po git init. Potem nacisnąłem na zdalne używając --set-upstream ...
Utworzenie nowej gałęzi rozwiązanej dla mnie:
git checkout -b <nameOfNewBranch>
Zgodnie z oczekiwaniami nie ma potrzeby łączenia, ponieważ poprzedni oddział został w pełni zawarty w nowym.
git push origin feature22-fix, ale feature22-fixnie wyszedłem ani lokalnie, ani zdalnie, więc musiałem najpierw sprawdzić lokalnie oddział, a następnie pchnąć
Jeśli próbujesz zainicjować katalog z istniejącym repozytorium GitHub, upewnij się, że dokonujesz zmian.
Spróbuj utworzyć plik:
touch initial
git add initial
git commit -m "initial commit"
git push -u origin master
Spowoduje to umieszczenie pliku o nazwie początkowej, który można usunąć później.
Mam nadzieję, że ta odpowiedź pomoże! Powodzenia!
W moim przypadku to moja huskypaczka nie zezwala na wypychanie.
> husky - pre-push hook failed (add --no-verify to bypass)
> husky - to debug, use 'npm run prepush'
error: failed to push some refs to 'https://username@bitbucket.org/username/my-api.git'
Aby mocno naciskać, po prostu biegnij
git push origin master --no-verify
Pobiegłem npm run prepushzobaczyć błąd debugowania, a to była przyczyna:
npm ERR! code ELOCKVERIFY
npm ERR! Errors were found in your npm-shrinkwrap.json, run npm install to fix them.
npm ERR! Invalid: lock file's loopback-utils@0.8.3 does not satisfy loopback-utils@^0.9.0
Uruchomiłem go npm installi zatwierdziłem, a problem został rozwiązany.
Wypróbuj to polecenie git,
git push origin master –f
git push origin master --force
Dla użytkowników sourcetree
Najpierw wykonaj wstępne zatwierdzenie lub upewnij się, że nie ma żadnych nieprzewidzianych zmian, a następnie po stronie sourcetree znajduje się „PILOTY”, kliknij go prawym przyciskiem myszy, a następnie kliknij „Push to origin”. Proszę bardzo.