Created
May 29, 2016 09:15
-
-
Save iblech/aa57148e88760c5e1909ccda8c1fe1a3 to your computer and use it in GitHub Desktop.
Git-Workshop 2015
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Wir hoffen, euch hat der Git-Workshop gefallen! Nun müsst ihr kein Dateinamenschaos mehr ertragen. ❤ | |
| Bei allen Fragen: Mail an tim@timbaumann.info oder iblech@web.de! | |
| Git-Cheatsheets | |
| http://www.git-tower.com/blog/git-cheat-sheet-de | |
| https://www.atlassian.com/dms/wac/images/landing/git/atlassian_git_cheatsheet.pdf | |
| https://training.github.com/kit/downloads/github-git-cheat-sheet.pdf | |
| http://chneukirchen.org/talks/gittingstarted2/chneukirchen-2011-gittingstarted.pdf (ist ein Foliensatz) | |
| Git funktioniert am besten mit textbasierten Formaten | |
| Am meisten profitiert man von Git, wenn man textbasierte Dateiformate wie LaTeX oder wie nahezu jede Programmiersprache verwendet. Bei LibreOffice- oder Word-Dateien kann Git Unterschiede zwischen Versionen nicht übersichtlich anzeigen. | |
| Git als Ersatz für Backups? | |
| Wenn man das eigene Repository nicht nur lokal auf dem Rechner, sondern auch auf GitHub (oder Alternativen) speichert, dient Git in gewissen Grenzen als Backup: Wird die Kopie auf dem eigenen Rechner zerstört, ist das zunächst nicht weiter tragisch. Man muss dann nur das Repository neu klonen; auch die gesamte Versionsgeschichte ist wieder vorhanden (viel besser als bei einem regulären Backup!). Wenn man sein GitHub-Repository als Backup ansieht, sollte man niemals "git push --force" verwenden, denn damit kann man aus Versehen das GitHub-Repository überschreiben (statt lediglich wie sonst neue Commits hinten anzuhängen). | |
| Git ist kein Ersatz für Backups, wenn man das Repository nur auf dem eigenen Rechner speichert. | |
| Git-Repository in der Dropbox | |
| Wer seine Daten nicht über GitHub der NSA zur Verfügung stellen möchte, sondern über Dropbox, kann das machen. Dabei speichert man in der Dropbox nicht das gesamte Arbeitsverzeichnis, sondern nur das Repository. Details stehen auf http://www.systemfeld.de/2011/11/02/git-repos-in-der-dropbox/. Update 2016: Es gibt eine fertige Anbindung an Git, die das übernimmt. https://github.com/anishathalye/git-remote-dropbox | |
| Den letzten Commit ändern | |
| Du hast vergessen, eine Datei hinzuzufügen, oder dich bei der Commit-Nachricht vertippt? Kein Problem, füge deine Änderungen normal mit git add zum Index hinzu und verwende dann git commit --amend um den letzten Commit mit den Änderungen zu erweitern (anstatt einen neuen Commit zu erzeugen). Wenn du den fehlerhaften Commit schon zu GitHub gepusht hast, musst du anschließend git push --force verwenden. | |
| LaTeX-Hilfsdateien ignorieren | |
| LaTeX-Hilfsdateien wie 'garben.log' oder 'garben.aux' sollte man nicht zum Repository hinzufügen. Damit man nicht ständig aufpassen muss, diese Dateien nicht zum Repository hinzuzufügen, kann man git beibringen, diese Dateien gar nicht zu beachten. Dazu legt man im Arbeitsverzeichnis eine Datei namens '.gitignore' (der Punkt am Anfang ist wichtig!) mit folgendem Inhalt an: | |
| *.log | |
| *.aux | |
| Die LaTeX-Hilfsdateien sind aber bereits in meinem Repository! | |
| Man kann Dateien aus dem Repository mit git rm löschen, z.B. mit "git rm garben.log". Die Löschung der Datei muss man anschließend committen. (Achtung: Die Datei verschwindet dabei nicht aus der Historie des Repositories. Falls du also versehentlicherweise deinen privaten SSH-Schlüssel auf GitHub veröffentlicht hast, so hilft git rm nichts. Tipp: Veröffentliche nicht deine privaten Schlüssel!) | |
| Ich bin es leid, ständig mein GitHub-Passwort einzugeben! | |
| Dann musst du SSH einrichten: https://help.github.com/articles/generating-ssh-keys/ | |
| Muss ich Git von der Kommandozeile verwenden? | |
| Nein, es gibt auch gute grafische Benutzeroberflächen, mit denen man den Standard-Workflow auch ohne Terminal erledigen kann (beispielsweise GitHub für Windows/Mac oder gitg und giggle auf Linux). Es lohnt sich aber dennoch, die Bedienung von der Kommandozeile zu erlernen. Denn sonst ist man aufgeschmissen, wenn eine wichtige Operation nicht von der GUI unterstützt wird. | |
| Grafische Programme, die die Versionsgeschichte anzeigen können, sind unter anderem: | |
| gitk | |
| gitg | |
| git gui | |
| tig (läuft auf der Kommandozeile) | |
| Die letzten Änderungen im Arbeitsverzeichnis rückgängig machen | |
| Den letzten in git (im Repository) gespeicherten Zustand von foo.tex kannst du mit "git checkout foo.tex" wiederherstellen. | |
| Den letzten Commit rückgängig machen | |
| Wenn die Dateien des Arbeitsverzeichnissen trotzdem modifiziert bleiben sollen: git reset --soft HEAD~1 | |
| Wenn auch das Arbeitsverzeichnis zurückgesetzt werden soll: git reset --hard HEAD~1 | |
| Hilfe! Irgendwas ist schief gelaufen. Nun ist das Repository irgendwie verkorkst. | |
| Git ist äußerst flexibel; man kann eigentlich alle Aktionen rückgängig machen. Google ist dein Freund! Eine möglicherweise stressfreiere Lösung ist aber, das Repository einfach neu von GitHub zu klonen. | |
| Mit jemanden zusammenarbeiten, der partout kein Git verwenden möchte | |
| Auch das ist möglich. Es ist umständlicher, als wenn deine Koautorin bzw. dein Koautor direkt Git verwenden würde; aber immer noch viel angenehmer, als völlig auf Git zu verzichten. Die grundlegende Idee besteht darin, für die Perspektive deines Mitstreitenden einen eigenen Branch anzulegen. Immer, wenn dir eine neue Version zugeschickt wird, aktualisierst du die Kopie in diesem Branch (so, als ob deine Kollegin bzw. dein Kollege das selbst gemacht hätte). Anschließend verwendest du git merge, um die neuen Änderungen mit den deinigen zusammenzuführen. Bei Fragen: Mail an Tim und Ingo! | |
| Welchen Augsburger Mathematikerinnen und Mathematikern kann ich auf GitHub folgen? | |
| https://github.com/benevs | |
| https://github.com/carinawi | |
| https://github.com/Gesalat | |
| https://github.com/GraffL | |
| https://github.com/iblech | |
| https://github.com/labachevskij | |
| https://github.com/MatthiasHu | |
| https://github.com/maximilianhuber | |
| https://github.com/mdbenito | |
| https://github.com/michael-hartmann | |
| https://github.com/mnieper | |
| https://github.com/StefanSchBu | |
| https://github.com/ThinkCaren | |
| https://github.com/timjb | |
| Welchen Augsburger Mathematikerinnen und Mathematikern kann ich auf Bitbucket folgen? | |
| https://bitbucket.org/labachevskij/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment