Archive for the ‘GIT’ Category

Linux xargs

Freitag, Dezember 8th, 2023

Beispiel: Alle Dateien, die sich seit dem letzten Commit geändert haben, in das Verzeichnis ~/backup kopieren:

git diff --name-only | xargs -i cp {} ~/backup/

Gitlab clone

Mittwoch, Februar 16th, 2022

Git clone:
git clone origin master

Wenn nach dem Clonen beim Pushen eine Gitlab-Repositories folgende Fehlermeldung kommt:


error: src refspec master does not match any
error: failed to push some refs to '(Gitlab-URL)'

muss man zuerst den Master auschecken:

git checkout master

Dann sollte das Pushen gehen.

Git Rebase

Freitag, Juni 11th, 2021

Um die Git-Historie zu ändern, ist ein REBASE nötig.

  • Auf den Git-Stand wechseln
  • Befehle auf der Kommandozeile, im Ordner des Repository:
    git -i -rebase [branch-fuer-rebase]
  • Die Reihenfolge der Commits kann im VIM-Editor geändert werden
  • Um einen Commit zu verändern, den Befehl „pick“ in „edit“ ändern
  • Der Befehl „squash“ verbindet den Commit mit dem vorgehenden Commit
  • Nach dem Verlassen von VIM mit „wq“ wird der Rebase gestartet
  • Bei einem Konflikt oder „edit“-Commit wird der Rebase gestoppt
  • Um den Rebase fortzusetzen, git -rebase --continue eingeben

Editieren eines Commit:

Der Commit muss im Tortoise-Log zuerst rückgängig gemacht werden: den Commit vor dem edit-Commit anklicken und „reset to this“ wählen, dann „Mixed Reset“ wählen und resetten.

Jetzt das Tortoise-Log verlassen und das Repo neu „commiten“. Der Commit kann jetzt neu gemacht werden, aufgeteilt werden (mehrere Commits), die Beschreibung kann geändert werden.

Die Dateien eines Commit können in der Git-GUI geändert werden.

Resetten eines Branches auf einen anderen Branch (Tortoise-Git):

Wenn man einen „Test-Branch“ erzeugt hat, um etwas auszuprobieren, möchte man eventuell einen alten Branch auf den Test-Branch resetten (um die Änderungen im Test-Branch „offiziell“ zu machen). Vorgehensweise:

  • Auf den alten Branch wechseln (switch)
  • Das Git-Log des Test-Branch anzeigen (im Revision-Graph rechtsclick auf Branch, dann Log)
  • Im Git-Log rechts auf den obersten Commit klicken (dies sollte der Test-Branch sein)
  • „Reset to this“ wählen
  • Hard Reset durchführen (nicht Mixed Reset)
  • Branch löschen:

    • Lokal: git branch -D [Branch]
    • Remote: git push origin --delete [Branch]

    Tag erzeugen:

    git tag [Tag]

    Tag auf server/remote pushen:

    git push origin [Tag]

    Tag löschen:

    git tag -d [Tag]

    Tag vom Server/remote löschen:

    git push --delete origin [Tag]

    Git Message vom 1. Commit ändern:


    git rebase -i --root
    git commit --amend
    git rebase --continue