Sourcetree: Commit-Button und -Kontextmenü machen nichts

  • Allgemein

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von siycah.

    Sourcetree: Commit-Button und -Kontextmenü machen nichts

    Ich habe derzeit folgendes Problem mit der Git-GUI "Sourcetree". Weder der große Commit-Button oben links noch der Commit-Menüpunkt im Kontextmenü einer vorgemerkten Datei bewirken irgendwas. Ist das ein Bug? Ich habe nach langem Rumsuchen im Programm herausgefunden, dass man offenbar unten die Commit-Message eingeben und dann unten rechts auf Commit klicken muss. Aber wofür sind dann die beiden anderen Menüpunkte?
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Einen Putty-Sicherheitsschlüssel benutze ich gar nicht in Sourcetree. Da aber das Commit über den anderen, oben beschriebenen Weg funktioniert, kann das in meinem Fall auch nicht das Problem sein. Immerhin weiß ich, wie ich trotzdem committen kann, komisch ist es aber schon. Anfangs dachte ich, ich mache gänzlich etwas falsch, weil das Commit nicht klappte.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Mit SourceTree kenne ich mich leider nicht so gut aus, aber dafür mit diversen anderen Tools für Git (und Git selbst).

    Um bei Git einen Commit zu generieren, müssen ein paar Anforderungen erfüllt werden:

    Quellcode

    1. $ git add src/main.cpp // Git zeigen dass es die Datei "src/main.cpp" gibt und dass es die Datei überwachen soll
    2. $ git commit src/main.cpp -m "Ich habe die main-Datei eingefügt." // "Snapshot" von der Datei erstellen und ins Repo lokal committen


    Sprich: du musst Dateien erst hinzufügen und dann für ein Commit "stagen". Mit dem Command `git commit <files> [-m "Message"]` kannst du Dateien Committen und Pro Datei eine Commit-Nachricht angeben.

    Bei den meisten Git-Frontends passiert das `git add` automatisch, also wird es denke ich nicht daran liegen.

    Ich habe mir das Tool gerade mal heruntergeladen und zum Testen ein bisschen in eines meiner Repos einen Test-Branch und eine Testdatei angelegt:



    Gehe ich nun in Sourcetree auf "File Status" und klicke oben auf Commit, kann ich meine Datei auswählen, eine Commit Nachricht schreiben und dann unten rechts auf "Commit" klicken. Damit kennt Git meine Datei, weiß sie zu überwachen und sie ist dann auch zum ersten Mal verisoniert:



    Was dann vielleicht noch zu beachten ist, ist dass du deine Änderungen pushen musst; also zum Server hochladen musst. Kannst du natürlich auch alles lokal behalten, aber das ist nicht der Sinn des Ganzen.
    Nach dem Committen würde man dann auch "push" oben klicken.

    [line]​------------------------[/line]



    Persönlich kann ich dir die Empfehlung geben, dich mit der Kommandozeile von Git auseinanderzusetzen. Die wirkt anfangs ein bisschen fickerig, aber schnell merkt man dass es doch nur ein zahmes Kätzchen ist.

    Die wichtigsten Befehle mal unten aufgepinselt, falls Interesse besteht:

    Quellcode

    1. $ git clone <URL> [--recursive/--recurse-submodules] [Pfad] # Git-Repo (rekursiv) klonen
    2. $ git submodule add <URL> [Pfad] # Git Submodul einfügen
    3. $ git submodule update [--init] [--recursive] # (rekursiv) alle Submodule (klonen und) aktualisieren
    4. $ git add <Datei[en]/Ordner> # Ordner oder Datei(en) zur Versionskontrolle hinzufügen
    5. $ git commit <Datei[en]> [-m "Commit-Nachricht"] # Datei(en) committen, wahlweise mit Nachricht. Ohne -m öffnet sich ein Editor (meist vi) zum Bearbeiten der Nachricht
    6. $ git push [origin <Branch-Name>] # Aktuelle Änderungen zum Server schieben
    7. $ git pull # Aktuellen Branch mit Server-Stand aktualisieren
    8. $ git checkout <branch> # Einen neuen Branch auschecken
    9. $ git checkout -b <neuer Branch> # Einen neuen Branch auschecken
    10. $ git reset [--hard] # Alle Änderungen in aktuellem Branch auf Stand vom letzten Commit rückgängig machen
    11. $ git reset <commit-Hash> # Änderungen aus Commit rückgängig machen


    und noch zahlreiche andere, aber ich behaupte damit startet man sehr gut ins Rennen!

    Auf Windows gibt es die Möglichkeit, Git zu installieren, gemeinsam mit dem "Git Bash". Meine persönliche Empfehlung wäre das WSL mit einem einfachen Distro wie Ubuntu.
    Da kann man auch nichts falsch machen, eigentlich.

    Einen SSH-Schlüssel (PuTTY Schlüssel) braucht man idR nur, wenn man per SSH auf Repos zugreifen möchte. Das ist bei GitHub oft der Fall, wenn keine OAuth2 gegeben ist, wie bei VS/VS Code.
    Ob man das braucht sieht man daran, dass die Repo-URL mit "ssh://" beginnt. Für HTTPS ist das eher ungewöhnlich. Stattdessen authentifiziert man sich auf der Konsole oder beim Pushen mit Username/Passwort.
    Ein SSH-Key ist aber mMn sehr praktisch objektiv betrachtet sicherer.

    So, meine Antwort hier ist auch länger geworden, als ich ursprünglich mal plante.
    Ich hoffe ich konnte dir hier erstmal weiterhelfen!
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems
    Meine Privatwebseite: SimonC.eu

    Bitte nicht wundern, wenn meine Aktivitäten im Forum etwas langsamer sind, ich baue gerade mein Nebengewerbe zum Vollgewerbe aus.
    Ich versuche auf euch zurückzukommen :)
    Moins @Marcus Gräfe

    ich hab's mal runtergeladen und geschaut, also die Buttons die "nix tun" öffnen eigentlich die Seite unter "Workspace -> Datei Status" auf der linken Seite und setzen den Fokus auf das Eingabefeld für die Commit message. Wenn man eh schon auf dieser Seite drauf ist, sieht's natürlich so aus als würde nix passieren. Wenn man aber links mal auf "History" klickt und danach auf den Commit Button, springt er eben dorthin zurück.
    Ist also quasi einfach nur ein Design-Fail. Bei mir hüpft die Richtextbox auch immer minimal wenn man auf Commit klickt lul


    Link :thumbup:
    Hello World
    @siycah Danke für die ausführlichen Erläuterungen! Vorerst werde ich allerdings bei grafischen Tools bleiben, weil ich gerne übersichtlich sehen möchte, was gemacht wird. Zudem ist ein Mausklick schneller als ein Befehl an der Konsole, egal wie fit man mit den Befehlen ist.

    @Link Danke, das ist tatsächlich die Lösung! Ich hatte schon an mir gezweifelt. Das ist wirklich ein Design-Fail.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum

    Marcus Gräfe schrieb:

    Vorerst werde ich allerdings bei grafischen Tools bleiben, weil ich gerne übersichtlich sehen möchte

    Kann ich absolut nachvollziehen. Als ich bei Git einstieg war das für mich auch der einfachste Weg!
    Sollte es dennoch mal nötig sein, gerne auf mich zukommen und ich versuche zu helfen, wo ich kann!
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems
    Meine Privatwebseite: SimonC.eu

    Bitte nicht wundern, wenn meine Aktivitäten im Forum etwas langsamer sind, ich baue gerade mein Nebengewerbe zum Vollgewerbe aus.
    Ich versuche auf euch zurückzukommen :)