Git Fehler

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.
Antworten
Joh
Lazarusforum e. V.
Beiträge: 280
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Git Fehler

Beitrag von Joh »

Moin,
rufe ich die Git Gui auf, um damit herumzuspielen erscheint folgende Meldung:
Git1.PNG
Git1.PNG (9 KiB) 10492 mal betrachtet

OK, klingt wie ein Plan, also machen; leider kommt dann ein:
Git2.PNG
Git2.PNG (20.07 KiB) 10492 mal betrachtet

Bei Database-Statistics erscheint ein:
Git3.PNG
Git3.PNG (23 KiB) 10492 mal betrachtet

Ist da irgendwas in den Git-Daten kaputt, oder funktioniert nur der Teil GitGui nicht unter Windows?
Meine Änderungen im Projekt werden mit gitk sauber angezeigt.
Da ich alleine programmiere und weiterhin regelmäßige Sicherungen habe, ist das git-Gefrickel eher noch Spielerei...
just my two Beer

Mathias
Beiträge: 6899
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Git Fehler

Beitrag von Mathias »

Da ich alleine programmiere und weiterhin regelmäßige Sicherungen habe, ist das git-Gefrickel eher noch Spielerei...
Ich mache es auf der Konsole mit einem einfachen Script.

Code: Alles auswählen

#!/bin/bash
cd SDL-3
git add .
git commit -m "$1"
git push
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Joh
Lazarusforum e. V.
Beiträge: 280
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Re: Git Fehler

Beitrag von Joh »

so mache ich das ja auch. Außer das ich die Pfade direkt in den git-Verknüpfungen stehen habe.

Jetzt wollte ich mal gucken, wie der Baum so aussieht (ein schlanker Stamm ohne Krone) und hatte dabei gitk und git-gui aufgerufen, weil mir die Tortoises und Konsorten zu mächtig für "mal eben" sind.

Und bei den Versuchen kamen dann die Fehlermeldungen. Wenn die Meldungen direkt mit git-gui zu tun haben, dann ignoriere ich das. Wenn allerdings mein git-Profil betroffen ist, wonach die Meldung klingt, dann möchte ich eine Lösung.
just my two Beer

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1617
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Git Fehler

Beitrag von corpsman »

Wenn ich das richtig sehe ist das doch deine Lokale Kopie.

Wenn ich mit sowas stress habe, checke ich mein Repo in der Regel einfach geschwind neu aus. Dann kannst ein Diff auf das "kaputte" machen (welcher eigentlich 1:1) sein sollte. Ist der Fehler dann in der neuen Version weg, einfach die alte Löschen und gut. Wenn nicht, dann hast ein Problem um dass du dich kümmern must ..
--
Just try it

Joh
Lazarusforum e. V.
Beiträge: 280
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Re: Git Fehler

Beitrag von Joh »

corpsman hat geschrieben: Mi 3. Apr 2024, 06:19 Wenn ich das richtig sehe ist das doch deine Lokale Kopie.
Du hast latürnich Recht.
Ich arbeite mit der lokalen Kopie. Das hatte ich zwar verstanden, aber noch nicht verinnerlicht.
In ein neues Vrz. ausgecheckt, die nicht getrackten Daten hinzugefügt und fertig.

Das übt nicht nur, das zeigt auch, welche Dateien (nicht die Daten) eigentlich doch noch ins GIT müssten...
Verzeichnisse umbenannt und alles ist so wie es sein sollte.

Danke.
just my two Beer

Mathias
Beiträge: 6899
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Git Fehler

Beitrag von Mathias »

Ich habe folgendes Script um mein GiIT auf GITHUB zu aktualisieren.

Code: Alles auswählen

#!/bin/bash
cd GTK4
git add .
git commit -m "$1"
git push
Nun funktioniert es auf einmal auf einem Repository nicht mehr, darum habe ich es in Einzelschritten gemacht, so das man sieht wo der Fehler kommt.

Code: Alles auswählen

git add .
tux@tux-B660M-DS3H-DDR4:/n4800/DATEN/Programmierung/mit_GIT/Lazarus/Tutorial/GTK4$ git commit -m test
[main fa6ca8f] test
 1 file changed, 3 insertions(+)
tux@tux-B660M-DS3H-DDR4:/n4800/DATEN/Programmierung/mit_GIT/Lazarus/Tutorial/GTK4$ git push
To https://github.com/sechshelme/Lazarus-GTK4-Packages_and_Examples.git
 ! [rejected]        main -> main (non-fast-forward)
error: Fehler beim Versenden einiger Referenzen nach 'https://github.com/sechshelme/Lazarus-GTK4-Packages_and_Examples.git'
Hinweis: Updates were rejected because the tip of your current branch is behind
Hinweis: its remote counterpart. If you want to integrate the remote changes,
Hinweis: use 'git pull' before pushing again.
Hinweis: See the 'Note about fast-forwards' in 'git push --help' for details.
tux@tux-B660M-DS3H-DDR4:/n4800/DATEN/Programmierung/mit_GIT/Lazarus/Tutorial/GTK4$ 
Einer eine Idee, was verbrochen habe, das es nicht mehr geht ?

Was ich noch sagen muss, mir ist nichts bewusst, das ich irgendwelche git Befehle ausführte.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

martin_frb
Beiträge: 586
Registriert: Mi 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
CPU-Target: mostly 32 bit

Re: Git Fehler

Beitrag von martin_frb »

"unpack error" deutet auf eine kaputte Datei hin.

Im schlimmsten Fall Festplatte, aber wahrscheinlich ist irgendwann vorher bei einem git schreib zugriff etwas schief gegangen (das ist, der Schreib-Zugriff wurde nicht ordentlich beendet, und eine Datei hat jetzt Müll).
Es kann sein, dass die kaputte Datei ein Duplikat ist, und noch eine funktionale Kopie existiert. Oder nicht....

Als erstes: Backup.

Dann
git fsck

Und sehen was der Output ist.
"unreachable" und "dangling" darf vorkommen.

Was sagt
git show 6401ed9d7d0434
?

----

"Loose Object" => Es kann sein, das das eine alte Datei ist, die nicht richtig gelöscht wurde. (kann afaik passieren wenn 2 git Prozesse laufen)

Wenn Du ein backup hast, dann schau mal ob eine/mehrere Dateien des Namens existieren. Testweise löschen, nochmal git fsck

Wenn dann alles gut ist, war es wahrscheinlich eine Datei die irgendwann mal in eine andere Datei mit aufgenommen wurde, und dann nicht korrekt gelöscht wurde.

----
btw, wenn (und nur wenn) wieder alles ok ist => git gc

Mathias
Beiträge: 6899
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Git Fehler

Beitrag von Mathias »

Mit den original-Dateien scheint alle io. zu sein. Alles lässt sich fehlerfrei kompilieren. Auch mit "aufräumen und kompilieren".
Ich habe alles in einer ZIP gesichert. Dies ging auch fehlerfrei, somit scheint die Platte io. zu sein. Die Dateien sind sowieso alle auf einer NAS.
Ich habe Probehalber eine Datei *test.txt" angelegt.

Code: Alles auswählen

$ git add 

Code: Alles auswählen

git commit -m test
[main 4eacc0a] test
 1 file changed, 1 insertion(+), 1 deletion(-)

Code: Alles auswählen

$ git push
To https://github.com/sechshelme/Lazarus-GTK4-Packages_and_Examples.git
 ! [rejected]        main -> main (fetch first)
error: Fehler beim Versenden einiger Referenzen nach 'https://github.com/sechshelme/Lazarus-GTK4-Packages_and_Examples.git'
Hinweis: Updates were rejected because the remote contains work that you do not
Hinweis: have locally. This is usually caused by another repository pushing to
Hinweis: the same ref. If you want to integrate the remote changes, use
Hinweis: 'git pull' before pushing again.
Hinweis: See the 'Note about fast-forwards' in 'git push --help' for details.

Code: Alles auswählen

4$ git fsck
Prüfe Objekt-Verzeichnisse: 100% (256/256), fertig.
Prüfe Objekte: 100% (7007/7007), fertig.
Commit in Commit-Graph überprüfen: 100% (56/56), fertig.

Code: Alles auswählen

$ git show 4eacc0a
commit 4eacc0a9d850793dfea19abf25681b2170021b98 (HEAD -> main)
Author: tux <you@example.com>
Date:   Fri Aug 23 21:45:37 2024 +0200

    test

diff --git a/test.txt b/test.txt
index 0f197a1..ae2768e 100644
--- a/test.txt
+++ b/test.txt
@@ -1,2 +1,2 @@
 gfdgfdgfd
-
+saddas
Scheint alles io. zu sein. bis auf "git push".


Nachtrag:
Da ich ein Backup habe, habe ich die Bereinungung gemacht, bringt aber nichts.

Code: Alles auswählen

$ git gc
Objekte aufzählen: 7013, fertig.
Zähle Objekte: 100% (7013/7013), fertig.
Delta-Kompression verwendet bis zu 20 Threads.
Komprimiere Objekte: 100% (2546/2546), fertig.
Schreibe Objekte: 100% (7013/7013), fertig.
Gesamt 7013 (Delta 4251), Wiederverwendet 7005 (Delta 4248), Pack wiederverwendet 0

Code: Alles auswählen

$ git push 
To https://github.com/sechshelme/Lazarus-GTK4-Packages_and_Examples.git
 ! [rejected]        main -> main (fetch first)
error: Fehler beim Versenden einiger Referenzen nach 'https://github.com/sechshelme/Lazarus-GTK4-Packages_and_Examples.git'
Hinweis: Updates were rejected because the remote contains work that you do not
Hinweis: have locally. This is usually caused by another repository pushing to
Hinweis: the same ref. If you want to integrate the remote changes, use
Hinweis: 'git pull' before pushing again.
Hinweis: See the 'Note about fast-forwards' in 'git push --help' for details.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

martin_frb
Beiträge: 586
Registriert: Mi 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
CPU-Target: mostly 32 bit

Re: Git Fehler

Beitrag von martin_frb »

Ok, dann hat sich der Ursprüngliche Fehler wohl korrigiert.

Push ist ein "Benutzer Fehler"

Du musst erst eine "git pull" machen, da der Server commits (von anderen) hat, die Du lokal noch nicht hast. Damit Du die nicht überschreibst, musst Du sie zuerst pullen (und mergen oder rebasen)

Mathias
Beiträge: 6899
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Git Fehler

Beitrag von Mathias »

Ich habe nun mal versucht den Ordner ".git" zu entfernen und habe alles nochmals wie bei einer Neuerstellung durchgemacht..
Nur in der Konsole. Auf der GITHUB Seite habe ich nichts umgestellt.

Code: Alles auswählen

echo "# Lazarus-Diverses" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/sechshelme/Lazarus-GTK4-Packages_and_Examples.git
git push -u origin maste
Jetzt lädt er wieder hoch wie gewohnt. Nur hat es jetzt ein kleines Manko.

Wen ich da rein gehe, sieht man nur eine alte Aktualisierung. https://github.com/sechshelme/Lazarus-G ... /tree/main
Erst wen ich dort von main auf master umstelle, sieht man das ich kürzlich was hochgeladen habe.
und wen ich dort gucke, ist alles aktuell.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten