Startseite
Drupal Wiki - DrupalTM als Wiki - 11 Jahre Erfahrung
Intranet-, Knowledgebase- und Qualitätsmanagementsysteme...mehr

  • Neues Passwort anfordern

Ähnliches

  • zsh 4.3.10 unter Debian und Ubuntu
  • Netbeans mit PHPunit und XDebug
  • VirtualBox Tips und Tricks
  • Exim Tips und Tricks
  • ESXi 4 - Command line Tools and Tricks

Bereiche

  • RSS Feed
  • Index
  • Abteilungen
  • Startseite

Kategorien

  • Entwicklung (16)
    • Git (7)
    • IDE (4)
    • PHP (1)
    • SVN (2)
  • ESXi (5)
    • Backup (1)
    • CLI (2)
    • Raid (1)
  • FH Iserlohn (1)
    • GUI-Programmierung (1)
  • Impressive.media (5)
    • Drupal (4)
    • Drupaliki (2)
  • IT (53)
    • C++ (1)
    • Funambol (1)
    • Linux (31)
      • Debian (11)
      • Ubuntu (9)
    • Open Source (4)
    • Software (13)
      • Linux (13)
    • VMware (8)
    • Zimbra (4)
  • OpenFoam (1)
    • Documentation (1)

Betriebssysteme , Debian , Development , Drupal , Drupaliki , Entwicklungsumgeb.. , EQ4 , ESXi , Git , GUI , Hetzner , HowTo , Impressive.media , Installation , Intranet , Java , KDevelop , Knowledgebase , Lighttpd , Linux , Praktikum , Qualitätsmanagem.. , Shell , SVN , tricks , Ubuntu , VMware , Vorlesung , Wiki , Zimbra
more tags
  • Diskussion
  • PDF
  • Abonnieren

Git Tips und Tricks

25.02.10 um 13:23 von EugenMayer, (0) Beiträge

1 Git Tricks

1.1 Konfiguration

1.1.1 Farbige Ausgabe (status)

git config --global color.ui auto

1.2 Tricks

1.2.1 Wiederherstellen

1.2.1.1 Lokal Gelöschtes Verzeichnis bzw Datei aus HEAD wiederherstellen

Dieses vorgehen wird jedoch keine Änderungen an Dateien wieder rückgängig machen.

git checkout -- dir_or_file

1.2.1.2 Alle Änderungen verwerfen und aus dem Head wiederherstellen

Wir haben lokale Änderungen an Dateien, welche wir noch nicht eingecheckt haben. Wir haben dabei auch neue Dateien, die untracked sind. Deswegen löschen wir erstmal alles und stellen es wieder her. Wenn wir den reset alleine durchführen, bleiben alle untracked Dateien im Verzeichnis bestehen und wir müssten diese mühsam von hand löschen.

cd /path/to/reporsitory
rm * -fr
git reset --hard

1.2.1.3 Alle Änderungen verwerfen und aus dem origin wiederherstellen

Wir gehen davon aus, das unser lokales git reporsitory Änderungen hat, die wir teilweise auch schon lokal eingecheckt haben. Wir wollen nun alle diese Änderungen vewerfen und aus dem remote git reporsitory "origin" wiederherstellen.

cd /path/to/reporsitory
rm * -fr
git remote update
git reset --hard

1.2.2 Remote-Branch fetchen

git fetch origin branchname

1.2.3 Remote Branches und deren Version

Zeit die remote branches an, sowie deren Versionen.

git ls-remote origin

1.2.4 Remote Branch löschen

git push origin :<branch>

1.2.5 Remote Tag löschen

git push origin :tags/<tagnam

1.2.6 Unterschied zum origin

Zeigt den Unterschied der Commits des aktuellen git-Reporsitories mit dem origin an

git log ..origin/master

im Gegensatz dazu werden hier alle Commits angezeigt

git log origin/master

1.2.7 Diffs erzeugen

1.2.7.1 Incoming Diff von HEAD zu origin master

Hier werden nur Änderungen angezeigt, die vom origin/master kommen würden, nicht umgekehrt!

git fetch origin master
git diff master...origin/master

1.2.7.2 In/out Diff von HEAD zu origin master

Änderunge in und out von HEAD zu origin master

git fetch origin master
git diff master origin/master

1.2.7.3 Diff von WC(not updated) zu master

Das sind also lokale, noch nicht in die staging area überführte Änderungen. Also WC(not updated)<->Staging. "Untracked files" sowie auch "Staged(to be committed)" Änderungen werden nicht angezeigt.

git --no-pager diff --

1.2.7.4 Diff des WC zum HEAD

Dies zeigt alle Änderungen, "to updated", "staged" und committed zum aktuellen Head

git --no-pager diff HEAD

1.2.7.5 Diff vom WC zu remote branch

Dies zeigt alle Änderungen, "to updated", "staged" und committed zu einer branch, hie origin/master an

git --no-pager diff origin/master

1.2.7.6 Man kann dies entsprechend auch in einer Datei speichern

git diff master...origin/master > patch.diff

1.2.7.7 Patch aus einem bestimmten Commit bzw. in einer bestimmten Range

git log  cd4d2c40dcff1fde129b3be10b8fd3e9b34a087f..c0f5fd7f80d6edbfa295d4c0f04fbfb6eb5f9dac -p

oder

git diff  cd4d2c40dcff1fde129b3be10b8fd3e9b34a087f..c0f5fd7f80d6edbfa295d4c0f04fbfb6eb5f9dac

Und für Drupal dann korrekter Weise

git diff  cd4d2c40dcff1fde129b3be10b8fd3e9b34a087f..c0f5fd7f80d6edbfa295d4c0f04fbfb6eb5f9dac --no-color --no-prefix

1.2.8 Lokale Daten über origin-Versionen updaten

Zeigt verglichen zu oben alle logs des origins an, nicht nur den unterschied

git remote update

holt sich die aktuellen commit logs etc vom remote repo. Wichtig wenn man prüfen möchte, ob sich was zum aktuellen clone verändern hat

1.2.9 Löscht alle nicht mehr vorhanden Dateien aus dem Repository

git status | grep deleted | awk -F" " '{print $3}' | xargs git rm

git config --global color.ui auto
Links: Git Cheat-Sheet
Details
DetailsTaxonomien
StatusIn Bearbeitung
Erstellt am26.11.09
Git - IT
Development - Git - tricks
  • Diskussionsbeiträge(0)

Kommentar hinzufügen

Abbrechen

Valid XHTML Strict 1.0 and CSS
provided by Impressive.media GbR - Sitemap - Drupal is a Registered Trademark of Dries Buytaert