Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Both sides previous revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
misc:git [2012/11/30 22:04] 84.56.1.83 |
misc:git [2016/05/19 12:19] (aktuell) skruppy [GIT] |
||
---|---|---|---|
Zeile 5: | Zeile 5: | ||
* http://git-scm.com | * http://git-scm.com | ||
* [[http://stackoverflow.com/questions/750172/how-do-i-change-the-author-of-a-commit-in-git|Author names ändern]] | * [[http://stackoverflow.com/questions/750172/how-do-i-change-the-author-of-a-commit-in-git|Author names ändern]] | ||
+ | * http://365git.tumblr.com | ||
+ | * http://theterrorists.org/~ben/cheat/git.png | ||
+ | * http://eagain.net/articles/git-for-computer-scientists/ | ||
+ | * http://salkuma.files.wordpress.com/2011/07/git-transport.png (workspace, index, remote, ... werlcher befehl arbeitet wo) | ||
+ | * https://github.com/ginatrapani/ThinkUp/wiki/Developer-Guide:-Get-the-Source-Code-from-GitHub-and-Keep-It-Updated/abbe99abacc7bb5623cdc075424514ffadac2b17 | ||
+ | * Sehr guter [[http://youtu.be/GYnOwPl8yCE|Vortrag]] ([[https://speakerdeck.com/pbhogan/power-your-workflow-with-git|Slides]]) | ||
+ | |||
Zubeginn ist alles leer (Working directory & Index): | Zubeginn ist alles leer (Working directory & Index): | ||
Zeile 221: | Zeile 228: | ||
| ''git cat-file -p <ID>'' | Zeige GIT Objekte aus dem object strorre | | | ''git cat-file -p <ID>'' | Zeige GIT Objekte aus dem object strorre | | ||
| ''git clone <URL>'' \\ ''git submodule init'' \\ ''git submodule update'' | Repo mit submodulen inizialisieren (clonen) \\ (submodule müssen extra explizit behandelt werden) | | | ''git clone <URL>'' \\ ''git submodule init'' \\ ''git submodule update'' | Repo mit submodulen inizialisieren (clonen) \\ (submodule müssen extra explizit behandelt werden) | | ||
+ | |||
+ | ===== Dateistruktur ===== | ||
+ | ==== Objects ==== | ||
+ | ''/objects/<xx>/<xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>'' | ||
+ | |||
+ | Können entweder mit | ||
+ | for x in t s p ; do git cat-file -$x 3d646c3d1bf84007c93ab1d78e7f6941ef65bdc2 ; done | ||
+ | oder mit | ||
+ | perl -MCompress::Zlib -e 'undef $/; print uncompress(<>)' .git/objects/28/9cf21ee611ca2c335fa77f48f4613bd5255aa3 | ||
+ | angeschaut werden | ||
+ | |||
+ | ==== Refs ==== | ||
+ | ''/refs/'' | ||
+ | |||
+ | In Ordnern sind files die einen Hash enthalten. Somit Wird einem GIT object ein Name gegeben. | ||
+ | |||
+ | ''/HEAD'' | ||
+ | |||
+ | Referenz auf eine file in ''/refs''. Ist link auf den //aktuellen HEAD// des //aktuellen branches// und somit indirekt auf den letzten commit. | ||
+ | ==== Tags ==== | ||
+ | ''/refs/tags/<tag name>'' | ||
+ | |||
+ | <tag name> ist eine datei die den Hash eines der follgenden Objekte enthält | ||
+ | ^ Was ^ Tag typ ^ | ||
+ | | tag object | Annotiated Tag | | ||
+ | | blob object | Leightweight Tag | | ||
+ | | tree object | ::: | | ||
+ | | commit object | ::: | | ||
+ | |||
+ | * Ein tag object kann auf alle //4// Typen (auch tags selbst) wieder verweisen | ||
+ | * Nur annotiated tags können commitet werden (sie sind ja schließlich eigene objekte. Commits als tags könnten nicht vom commit selbst unterschieden werden) | ||
+ | * Annotiated Tags werden standartmäsig //nicht// committed (???) | ||
+ | * Annotiated tags sind zu bevorzugen, da dort u.a. auch der ersteller gespeichert wird. | ||
+ |