git-fout: het is niet gelukt om enkele refs naar de afstandsbediening te pushen

Om de een of andere reden kan ik nu niet pushen, terwijl ik dat gisteren wel kon.
Misschien heb ik een fout gemaakt met de configuraties of zoiets.

Dit is wat er gebeurt:

Als ik de git push origin master gebruik

gitbashscr

Hoe mijn werkmap en externe repository eruit zien:

Schermafbeelding van de Windows-bestandsmap met deze mappen: .git, css, js. En deze bestanden: index.php , readme, setsu.php. Het woord


Antwoord 1, autoriteit 100%

(Opmerking: vanaf oktober 2020 wordt elke nieuwe repository gemaakt met de standaardbranch main, niet master. En je kunt hernoem de standaardtak van de repository van master naar main.
De rest van dit antwoord uit 2014 is bijgewerkt om "main")

te gebruiken

Als er nieuwe commits naar de GitHub-repo zijn gepusht, terwijl je lokaal aan het werk was, zou ik adviseren om:

git pull --rebase
git push

De volledige syntaxis is:

git pull --rebase origin main
git push origin main

Met Git 2.6+ (sept. 2015), na (eenmalig) te hebben gedaan

git config --global pull.rebase true
git config --global rebase.autoStash true

Een simpele git pull zou voldoende zijn.
(Opmerking: met Git 2.27 Q2 2020 is er ook een merge.autostash beschikbaar voor uw reguliere trekken, zonder rebase)

Op die manier zou je (het --rebase gedeelte) je lokale commits opnieuw afspelen bovenop de nieuw bijgewerkte origin/main (of origin/yourBranch: git pull origin yourBranch).

Bekijk een vollediger voorbeeld in het hoofdstuk 6 Trekken met rebase van het Git Pocket Book.

Ik zou een:

. aanraden

# add and commit first
git push -u origin main

Dat zou een trackingrelatie tussen uw lokale hoofdfiliaal en zijn stroomopwaartse vertakking tot stand brengen.
Daarna kan elke toekomstige push voor die branch gedaan worden met een simpele:

git push

Zie "Waarom moet ik expliciet een nieuwe branch pushen?".


Sinds de OP al zijn commit opnieuw heeft ingesteld en opnieuw heeft gedaan bovenop origin/main:

git reset --mixed origin/main
git add .
git commit -m "This is a new commit for what I originally planned to be amended"
git push origin main

Het is niet nodig om pull --rebase te trekken.

Opmerking: git reset --mixed origin/main kan ook worden geschreven als git reset origin/main, aangezien de optie --mixed is de standaardinstelling bij gebruik van git reset.


Antwoord 2, autoriteit 19%

Heeft iemand het geprobeerd:

git push -f origin master

Dat zou het probleem moeten oplossen.

EDIT: Op basis van de opmerking van @Mehdi hieronder moet ik iets verduidelijken over —force pushing. Het bovenstaande git-commando werkt alleen veilig voor de eerste commit. Als er al commits, pull-verzoeken of branches waren in het verleden, reset dit alles en zet het op nul. Als dat zo is, raadpleeg dan het gedetailleerde antwoord van @VonC voor een betere oplossing.


Antwoord 3, autoriteit 11%

Als je zojuist git init hebt gebruikt en je bestanden hebt toegevoegd met git add . of iets dergelijks en je externe branch hebt toegevoegd, kan het zijn dat je dat gewoon niet hebt gedaan commit (git commit -m 'commit message') iets lokaals om naar de afstandsbediening te pushen… Ik had net deze fout en dat was mijn probleem.


Antwoord 4, autoriteit 6%

Ik had hetzelfde probleem. Ik kreeg dit probleem omdat ik geen enkele commit had gedaan, zelfs geen initiële commit en toch probeerde ik te pushen.

Eens deed ik git commit -m "your msg" en toen werkte alles prima.


Antwoord 5, autoriteit 3%

Hernoem je branch en druk dan, bijv.:

git branch -m new-name
git push -u new-name

Dit werkte voor mij.


Antwoord 6, autoriteit 2%

  1. git init

  2. git remote add origin https://gitlab.com/crew-chief-systems/bot

  3. git remote -v (voor het controleren van de huidige repository)

  4. git add -A(voeg alle bestanden toe)

  5. git commit -m 'Added my project'

  6. git pull --rebase origin master

  7. git push origin master


Antwoord 7, autoriteit 2%

Ik vind de oplossing voor dit probleem in de github-help.

Je kunt het zien via:Omgaan met niet-fast-forward-fouten

Er staat:

Je kunt dit oplossen door de wijzigingen op de remote branch op te halen en samen te voegen met de wijzigingen die je lokaal hebt gemaakt:

$ git fetch origin
# Fetches updates made to an online repository
$ git merge origin branch
# Merges updates made online with your local work

Of je kunt gewoon git pull gebruiken om beide commando’s tegelijk uit te voeren:

$ git pull origin branch
# Grabs online updates and merges them with your local work

Antwoord 8, autoriteit 2%

Ik heb de volgende stappen gevolgd en het werkte voor mij.

 rm -rf .git
 git init
 git add .
 git commit -m"first message"
 git remote add origin "LINK"
 git push -u origin master

Antwoord 9

Ik had hetzelfde probleem, opgelost met onderstaande stappen.

  1. git init
  2. git add .
  3. git commit -m 'Add your commit message'
  4. git remote add origin https://[email protected]/User_name/sample.git

    (Boven url https://[email protected]/User_name/sample.git verwijst naar de url van uw bitbucketproject )

  5. git push -u origin master

tip

controleer of je git hub-account linkt met je lokale git door:

git config --global user.email "[email protected]"
git config --global user.name "Your Name"

Antwoord 10

Als je gerrit gebruikt, kan dit worden veroorzaakt door een ongepast Change-id in de commit. Probeer de wijzigings-ID te verwijderen en kijk wat er gebeurt.


Antwoord 11

Vergeet niet om uw wijzigingen vast te leggen voordat u naar Github-repo pusht. Dit kan je probleem oplossen.


Antwoord 12

Het niet uitvoeren van de eerste wijzigingen voordat u pusht, veroorzaakt ook het probleem


Antwoord 13

git push origin {your_local_branch}:{your_remote_branch}

Als je lokale branch en remote branch dezelfde naam delen, kun je dan de naam van je lokale branch weglaten, gebruik gewoon git push {your_remote_branch}. Anders wordt deze fout gegenereerd.


Antwoord 14

Ik heb een lege opslagplaats gemaakt in GitHub en heb mijn code lokaal. Ik had nu hetzelfde probleem, aangezien ik de onderstaande volgorde volgde,

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

PROBLEEM WAS: ik heb geprobeerd vast te leggen voordat ik de bestanden die ik heb gestaged heb.

DUS WE MOETEN DE BESTANDEN FASEN EN VERVOLGENS COMMIT.

Dit is de juiste volgorde.

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

Omdat ik eerst de verkeerde volgorde uitvoer, voer ik gewoon de onderstaande opdrachten uit

git add .
git commit -m 'Initial Commit'
git push -u origin master

Antwoord 15

Omdat je misschien niets te pushen hebt (echt niets om te pushen). Doe zoals dit

git remote add origin https://github.com/donhuvy/accounting133.git
git remote -v
git add .
git commit -m"upload"
git push --set-upstream origin master

Wijzig de url van de externe repository in uw geval. Commando git remote -v dat je kunt overslaan, alleen ter controle.


Antwoord 16

voordat u pusht, moet u de wijzigingen toevoegen en vastleggen of git push -f origin master

uitvoeren


Antwoord 17

Ik heb met dit probleem te maken gehad, maar na 2 dagen kreeg ik een oplossing.
Voer deze twee opdrachten uit als u uw site de eerste keer op GitHub-pagina’s implementeert.

git commit -m "initial commit"
git push origin +HEAD

Antwoord 18

Probeer dit git-commando,

git push origin master –f
git push origin master --force

Antwoord 19

Bij gebruik van een Git-opslagplaats in Azure DevOps was het probleem een ​​vertakkingsbeleid dat vereiste dat alle wijzigingen in de vertakking moesten worden aangebracht via een pull-aanvraag. Proberen om wijzigingen rechtstreeks naar de vertakking te pushen, genereerde de fout “kan sommige refs niet pushen naar …”. Ik heb een PR-tak gemaakt en zonder problemen gepusht.


Antwoord 20

Nieuwe branch aanmaken opgelost voor mij:

git checkout -b <nameOfNewBranch>

Zoals verwacht was het niet nodig om samen te voegen aangezien de vorige branch volledig in de nieuwe zat.


Antwoord 21

Het kan gebeuren als je geen bestanden hebt.
Probeer een tekstbestand te maken en volg de volgende opdrachten

git add .
git commit -m "first commit"
git push --set-upstream origin master

Antwoord 22

Voor mij was het probleem dat ik de bestanden niet vóór de vastlegging had toegevoegd.

git add .

git commit -m "your msg"


Antwoord 23

doe deze

git rm --cached *
git add .
git commit -m"upload"
git push --set-upstream origin master

Veel plezier met coderen!


Antwoord 24

Gebruik het beste rm -rf .git/hooks en probeer dan git push


Antwoord 25

In mijn geval was er een probleem met een git pre-push hook.

Voer git push --verbose uit om te zien of er fouten zijn.

Controleer je git-hooks in de directory .git/hooks of verplaats ze tijdelijk naar een andere plaats en kijk of alles daarna werkt.


Antwoord 26

Github heeft de standaard branchnaam gewijzigd van master in main.
Dus als je de repo onlangs hebt gemaakt, probeer dan main branch

. te pushen

git push origin main

Dit is een veelgemaakte fout die beginners kunnen maken.

Github-artikel


Antwoord 27

Ik weet niet zeker of dit van toepassing is, maar de oplossing voor mij was om iets lokaal te committen na git init. Toen duwde ik naar de afstandsbediening met –set-upstream …


Antwoord 28

Als u probeert een map te initialiseren met een bestaande GitHub-repository, moet u ervoor zorgen dat u wijzigingen doorgeeft.

Probeer een bestand te maken:

touch initial
git add initial
git commit -m "initial commit"
git push -u origin master

Hiermee wordt een bestand met de naam initial geplaatst dat u later kunt verwijderen.

Ik hoop dat dit antwoord helpt! Veel succes!


Antwoord 29

In mijn geval was het mijn husky-pakket dat de push niet toestond.

> 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://[email protected]/username/my-api.git'

Om het krachtig te pushen, voer je gewoon git push origin master --no-verify

uit

Ik heb npm run prepush uitgevoerd om de fout te debuggen, en dit was de oorzaak:

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 [email protected] does not satisfy [email protected]^0.9.0

Voer npm install uit en commit het, en het probleem is verholpen.


Antwoord 30

In mijn geval was het voorvoegsel van de vertakkingsnaam al aanwezig op remote, dus als je een vertakkingsnaam ‘fix’ hebt, kun je geen andere vertakking pushen met de naam ‘fix/new_branch_name’, het hernoemen van de vertakking loste mijn probleem op.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Other episodes