Rigel-Computer


GitHub-Repository erstellen - und ein erstes, lokales hochladen 

...und dann - mit der Git-Bash unter Windows - ein lokales, bereits bestehendes, hochladen

Scheint einfach zu sein: Gemäß dieser Anleitung 30-Sekunden-Sache:
Adding locally hosted code to GitHub - GitHub Docs

Nicht ganz!

Folgendes Szenario:
Erste Schritte mit GitHub, keine Projekte, an denen andere mitarbeiten. Einfach erst einmal für sich ausprobieren.
Keine Branches, nur der Master-Branch.

Will man jetzt das lokale Projekt puschen, treten u.g. Effekte ein.

Im Nachhinein ist dann später klar, warum: Es soll möglichst verhindert werden, dass remote der Master-Branch überschrieben wird. Denn im Projekt mit anderen arbeitet man ja auf anderen Branches!
 

Das Repository auf GitHub ist erstellt, das lokale commited und statusmäßig sauber;

Der Befehl 
git remote add origin https://github.com/UserName/Repository-Name auf der Konsole initialisiert in der config im .git-Verzeichnis
auch brav

[remote "origin"]
    url = github.com/UserName/Repository-Name
    fetch = +refs/heads/*:refs/remotes/origin/*

Nur der simple Push-Befehl
git push origin master
der in der Anleitung angegeben wird, führt zu folgendem Error:

error: failed to push some refs to 'https://github.com/UserName/Repository-Name'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

und zwar beständig (*)

Die - gefundene - Lösung basiert auf dem Hinweis aus der Fehlermeldung "hint: git pull...". Wohlgemerkt: Das Repository auf GitHub ist LEER... tja..

git pull origin master --allow-unrelated-histories oder git push --force origin master

Das geht durch ohne Error. Und dann git push origin master desgleichen -> Das Remote Repository ist jetzt auf gleichem Stand wie das lokale. 

Aber wie eingangs gesagt: Das ist eine - in Git eingebaute - Sicherung für den remote-Master-Branch, und empfiehlt sich wirklich nur, wenn mann alleine an einem GitHub-Projekt arbeitet!

Im Projekt pullt man zuerst, um sicher zu stellen, dass man die Änderungen anderer lokal hat - und nichts versehentlich überschreibt.
Und da man dann eh auf eigenen Branches arbeitet, stört es die lokale Arbeit auch nicth - oder sollte es zumindest.

(*) Einem Hinweis - aus völlig anderer Quelle, aber auch von GitHub selber, dass man den Parameter "-u" verwenden soll/kann/muss, werde ich bei nächster Gelegenheit nachgehen, sobald das nächste Projekt ansteht