Karl: GIT Grundlagen

Hallo,

ich arbeite mich gerade in GIT ein. Und habe gleich zu Beginn 2 Fragen.

  1. Gibt es ein Gegegkommando zu 'git init'? Ich habe nämlich den falschen Ordner zu einem Repository gemacht und möchte den wieder rausnehmen.

  2. Funktioniert GIT vom System her ähnlich SVN, d.h. ich habe ein Repository und checke zum entwickeln aus diesem Rep aus und committe nach getaner Arbeit wieder?

  3. Gibt es ein gutes deutschsprachiges Tutorial zu GIT?

Gruß,Karl

  1. Hallo

    ich arbeite mich gerade in GIT ein. Und habe gleich zu Beginn 2 Fragen.

    1. Gibt es ein Gegegkommando zu 'git init'? Ich habe nämlich den falschen Ordner zu einem Repository gemacht und möchte den wieder rausnehmen.

    So du unter Unix/Linux arbeitest, findest du in diesem Verzeichnis ein Unterverzeichnis namens .git. Wenn du das löschst, existiert das Repository nicht mehr.

    1. Funktioniert GIT vom System her ähnlich SVN, d.h. ich habe ein Repository und checke zum entwickeln aus diesem Rep aus und committe nach getaner Arbeit wieder?

    Da du das Repository lokal betreibst[1], checkst du in der täglichen Arbeit relativ selten aus[2]. Du machst pro Änderung, die dir relevant erscheint, einen Commit und das wars.

    1. Gibt es ein gutes deutschsprachiges Tutorial zu GIT?

    Zur dritten der zwei Fragen kann ich nur auf die unvollständige deutsche Übersetzung von Pro-Git und auf die CRE-Folge 130 verweisen. Während ersteres die Bedienungsanleitung ist, ist der CRE-Podcast mehr oder minder ein akustisches Tutorial.

    [1] Zur Veröffentlichung bzw. zur Zusammenarbeit mit anderen Entwicklern benutzt man typischerweise ein weiteres, zentrales Repo im Netz, auf das du deine gemachten Commits überträgst. Es ist aber, anders als bei CVS oder SVN, technisch gesehen nicht *das* Zentral- oder Hauptrepository, sondern eine Spiegelung.

    [2] Bei Zusammenarbeit mit anderen Entwicklern musst du natürlich deren Änderungen vom für alle zugänglichen Repository (wie gesagt, typischerweise im Netz) in dein lokales Repo auschecken. Das gilt, wenn du verschiedene Entwicklungszweige pflegen willst, auch für ein ausschließlich lokales Repository.

    Tschö, Auge

    --
    Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
    Terry Pratchett, "Wachen! Wachen!"
    Veranstaltungsdatenbank Vdb 0.3
    1. Hallo Auge,

      So du unter Unix/Linux arbeitest, findest du in diesem Verzeichnis ein Unterverzeichnis namens .git. Wenn du das löschst, existiert das Repository nicht mehr.

      Ich arbeite unter Windows. Und dummerweise habe ich auch noch TortoiseGit installiert, der mir in diesem Ordner nun die Icons beeinflusst. Aber ok, ich werde den Inhalt kopieren und den Orginalordner löschen.

      Da du das Repository lokal betreibst[1], checkst du in der täglichen Arbeit relativ selten aus[2]. Du machst pro Änderung, die dir relevant erscheint, einen Commit und das wars.

      Das Handbuch schlägt vor, für alles und jeden Schritt eine(n??) Branch zu erstellen. Habe ich alles ausprobiert und klappt inkl. mergen gut.

      Frage: Wie erstellt man Tags, die man veröffentlicht?

      Zur dritten der zwei Fragen kann ich nur auf die unvollständige deutsche Übersetzung von Pro-Git und auf die CRE-Folge 130 verweisen. Während ersteres die Bedienungsanleitung ist, ist der CRE-Podcast mehr oder minder ein akustisches Tutorial.

      Ah. Das ist das GIT-Workbook übersetzt, oder? Klasse. Leider nicht ganz vollständig, aber das hilft schon sehr weiter.

      Ich war doch anfangs sehr irritiert, weil ich zuerst mit SVN gearbeitet hatte und in GIT danch gesucht habe, das Dateien physikaliosch ausgecheckt werden. GIT setzt aber nur pointer, wenn man einen branch macht. Somit arbeitet man quasi immer in seinem initialisierten Hauptverzeichniss, mal mit pointer auf master und mal mit pointer auf einem branch.

      Ist das richtig?

      Gruß, karl

      1. Hallo

        So du unter Unix/Linux arbeitest, findest du in diesem Verzeichnis ein Unterverzeichnis namens .git. Wenn du das löschst, existiert das Repository nicht mehr.

        Ich arbeite unter Windows. Und dummerweise habe ich auch noch TortoiseGit installiert, der mir in diesem Ordner nun die Icons beeinflusst. Aber ok, ich werde den Inhalt kopieren und den Orginalordner löschen.

        Zu TortioseGit und Git unter Windows kann ich nix sagen.

        Da du das Repository lokal betreibst[1], checkst du in der täglichen Arbeit relativ selten aus[2]. Du machst pro Änderung, die dir relevant erscheint, einen Commit und das wars.

        Das Handbuch schlägt vor, für alles und jeden Schritt eine(n??) Branch zu erstellen. Habe ich alles ausprobiert und klappt inkl. mergen gut.

        Definiere Schritt ;-)

        Frage: Wie erstellt man Tags, die man veröffentlicht?

        git tag name

        Du kannst auch einen ausreichenden Teil des Namens eines Commits hinten ransetzen, um einen Commit später zu einem Tag zu erklären. Das ist ja nur eine Markierung a la "Dieser Zustand ist die Beta1 der Version 1.0" (Kommentare wie dieser ist auf der Konsole mit "git tag name -a" zu erzeugen).

        Zur dritten der zwei Fragen kann ich nur auf die unvollständige deutsche Übersetzung von Pro-Git ... verweisen.

        Ah. Das ist das GIT-Workbook übersetzt, oder? Klasse. Leider nicht ganz vollständig, aber das hilft schon sehr weiter.

        Das ist das Git-Pro-Book. Es gibt auch noch das Community-Book.

        Ich war doch anfangs sehr irritiert, weil ich zuerst mit SVN gearbeitet hatte und in GIT danch gesucht habe, das Dateien physikaliosch ausgecheckt werden. GIT setzt aber nur pointer, wenn man einen branch macht. Somit arbeitet man quasi immer in seinem initialisierten Hauptverzeichniss, mal mit pointer auf master und mal mit pointer auf einem branch.

        Ist das richtig?

        Das ist eine der Möglichkeiten. Du kannst auch einen Branch und damit im Zusammenhang per Checkout eine vollständige Kopie des Repositorys erzeugen.

        Tschö, Auge

        --
        Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
        Terry Pratchett, "Wachen! Wachen!"
        Veranstaltungsdatenbank Vdb 0.3
        1. Tschö, Auge

          Und nochmal ein Hallo an Dich,

          Danke für Deine bisherige Hilfe. Ich habe noch ein paar Fragen, auf die ich noch keine Lösung gefunden habe. Ich hoffe, Du weißt da Rat.

          1. Wenn ich am 1.1.2011 eine Datei ändere und committe, sie dann am 2.1.2011 wieder ändere und committe und am 3.1.2011 ändere und committe, kann ich GIT dann irgendwie dazu nutzen, die Änderungen des 1.1 zu verwerfen,aber die anderen Änderungen beizubehalten?

          2. Ich habe das Projekt n mal auf meinem Webserver laufen. Wie kann ich feststellen, welche Version gerade in welchem Verzeichniss läuft? Und wie kann ich bspw. der Datei test.php ansehen, um welche Version der test.php es sich handelt. SVN konnte eine lfd. ID erzeugen und sie in die Datei eintragen. Wie stellt man das bei GIT fest?

          Viele Grüße, Karl

          1. Hallo,

            1. Wenn ich am 1.1.2011 eine Datei ändere und committe, sie dann am 2.1.2011 wieder ändere und committe und am 3.1.2011 ändere und committe, kann ich GIT dann irgendwie dazu nutzen, die Änderungen des 1.1 zu verwerfen,aber die anderen Änderungen beizubehalten?

            git revert SHA1_VON_DER_VERSION_VOM_1_1

            Viele Grüße,
            Christian

            1. Hi Christian,

              git revert SHA1_VON_DER_VERSION_VOM_1_1

              Danke für Deinen Rat.

              Kann mir sonst noch jemand den anderen Teil meiner Frage beantworten?

              Also wie finde ich anhand einer Datei auf dem Server heraus, um welche Version es sich handelt?

              Grüße, Karl