Ankündigung

Einklappen
Keine Ankündigung bisher.

Git(Hub) Commits löschen

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Git(Hub) Commits löschen

    Hier arbeiten doch sicherlich auch viele mit GitHub. An sich eine super coole Sache! Ich weiß nur nicht wieso alle auf die Bedienung über die Konsole bestehen. Glücklicherweise gibt es ja noch - etwas weniger verbreitet - die GitHub eigene Software. Leider gibt es da meines Wissens nicht die Funktion einen Commit zu löschen oder zu editieren, ebenso wenig auf der Webseite, was ich auch nicht verstehe. Ich komm mit Git einfach nicht klar und nicht mal Google hilft mir weiter.

    Kann mir jemand nicht einfach konkret die Commands geben mit denen ich ein bestimmtes Commit von einem Repository (was ich ja noch irgendwie synchronisieren müsste?!) löschen kann? Das wäre nett.


  • #2
    Wenn ich richtig liege, dann geht das nicht. Wenn man versehentlich beispielsweise sensible Daten wie Passwörter oder ähnliches gepush't hat, dann muss man möglicherweise das Repository löschen und neu anlegen. Wenn du deine Änderungen noch nicht gepush't hast, dann bleibt die möglicherweise nichts anderes übrig, als den alten (Online-)Stand nochmals auszuchecken und deine lokalen Änderungen in Form eines Patches da noch mal wieder drauf anzuwenden - und das dann zu pushen.

    Sonst, hier wird noch eine Möglichkeit dargestellt, die wohl aber nicht ganz ohne Konsequenzen bleibt. Ist schon recht alt, vielleicht funktioniert das aber noch: http://stackoverflow.com/questions/4...mmit-on-github

    Hier ein weiterer Artikel: https://help.github.com/articles/remove-sensitive-data/
    Standards - Best Practices - AwesomePHP - Guideline für WebApps

    Kommentar


    • #3
      Also ich hab dazu schon was im Internet gefunden. Bloß kann ich mit den Erklärungen nichts anfangen. Es scheitert allein schon beim Verbindung herstellen mit der Repository. Ich glaube sogar das ist gar nicht möglich und das man nur ein neues erstellen kann.

      Aber ich habe seit Herbst 2014 ein Projekt und die Statistiken und Commits würde ich gerne behalten!

      Wie kann eine so eigentlich funktionsvielfältige, benutzerfreundliche, grafisch ansprechende Plattform gleichzeitig so benutzerUNfreundlich sein und an so wichtigen Funktionen mangeln.

      Kommentar


      • #4
        Das hat nichts mit der Plattform an sich zu tun. Git verhindert das.
        Standards - Best Practices - AwesomePHP - Guideline für WebApps

        Kommentar


        • #5
          Ob Du einzelne commits entfernen kannst bin ich mir nicht sicher, aber Du kannst auf jeden Fall bestimmte Dateien aus dem Repo + Repo-History nachträglich vollständig entfernen:
          https://help.github.com/articles/remove-sensitive-data/
          vg
          jack
          -

          Kommentar


          • #6
            Man kann die letzten Commits durchaus löschen. Wie es mit Commits mitten in der Timeline steht weiss ich nicht. Und grundsätzlich hat rkr recht, das ist git selber, wo das verhindert.
            GitHub.com - ChrisAndChris - RowMapper und QueryBuilder für MySQL-Datenbanken

            Kommentar


            • #7
              Und grundsätzlich hat rkr recht, das ist git selber, wo das verhindert.
              Git selber stellt Werkzeuge zur Verfügung die eine nachträgliche Änderung der History sowie das nachträgliche vollständige Entfernen von Dateien ermöglichen sollen:

              http://git-scm.com/docs/git-filter-branch


              vg
              jack
              -

              Kommentar


              • #8
                Zitat von jack88 Beitrag anzeigen

                Git selber stellt Werkzeuge zur Verfügung die eine nachträgliche Änderung der History sowie das nachträgliche vollständige Entfernen von Dateien ermöglichen sollen:

                http://git-scm.com/docs/git-filter-branch


                vg
                jack
                Das überfordert mich :S

                Kommentar


                • #9
                  Die Natur eines Commits ist, nicht gelöscht sondern gemerged oder abgelehnt zu werden, filter-branch ist zwar ein tolles Feature aber nicht notwendig für Repositories. In öffentliche Repos gehören keine Zugangsdaten, wer das nicht schnallt sollte meiner Meinung nach lieber die Finger von Git, Github und anderen Services lassen. Entitäten-Filter haben auch den Seiteneffekt das sie Commits anderer Repositories die das gefilterte Repository als submodule einbeziehen unter Umständen kompromittieren ( wenn nicht sogar unbrauchbar machen / zerstören ) können.

                  Dieses Feature kann also sehr schnell beträchtlichen Schaden anrichten.
                  PHP.de Gitter.im Chat - Meine öffentlichen Bookmarks ← Ich habe dir geholfen ? Beschenk mich.

                  Kommentar


                  • #10
                    Hallo,

                    folgender Befehl löscht alle neueren Commits:
                    Code:
                    git reset --hard commit-id
                    Ersetze "commit-id" durch die ID des Commits, auf den Du unwiederuflich zurückspringen willst und schon ist alles was danach kam weg. Das setzt den HEAD hart (Parameter --hard) in der git Datenbank auf die jewilige gewünschte Commit ID zurück. Sollte auch bei GitHub funktionieren. So geht's zumindest bei mir lokal.


                    MFG derwunner

                    Kommentar


                    • #11
                      Aber die übrigen Commits sind immer noch in dem Git-Repository, oder? Damit wäre das Hauptanliegen (versehentlich kritische Daten eingecheckt) ja nicht gelöst.
                      Standards - Best Practices - AwesomePHP - Guideline für WebApps

                      Kommentar


                      • #12
                        mit dem git push nicht mehr. Also doch gelöst.

                        Kommentar

                        Lädt...
                        X