====== Snippets: Git ====== [[:snippets:start|← Zurück zu :snippets:start]] ===== Ein neues Projekt-Repository erstellen ===== * Eigentlich nicht wirklich Git-spezifisch, es geht vor allem um Dateien die üblicherweise in Quellcode-Repos zu finden sind, wie ''README'' oder ''LICENSE''. ==== Git-Repo ==== mkdir awesome-project cd awesome-project git init echo '# My Awesome Project' > README.md git add README.md git commit -m "Initial commit." git remote add origin "git@github.com:user/repo.git" git push -u origin main ==== README.md & LICENSE ==== > TODO! * Dateiformate: Markdown weit verbreitet und auch mein * Übersicht über das Projekt, Einführung etc. * Unverzichtbar: Eine Lizenz-Datei. [[https://choosealicense.com/no-permission/|Ohne eine solche ist die rechtliche Situation für Nutzer schnell unübersichtlich]] # Grundstruktur für ein einfaches README echo '# My Awesome Project - Links to your website or an online demo. This program does some awesome stuff. Describe the most important aspects. ## Requirements - GNU/Linux, macOS or FreeBSD - Python 3.10 - At least 10GB disk space ## Installation Describe the steps required to install your awesome program. Start with easy instructions for package managers or a Windows installer, after that you can show how to install it from the Git repository or things like *pip* or *Cargo*. ## Get help and/or report bugs - How can users get support? Maybe from an official Discord- or IRC-Channel? - Your Mastodon account - How to report bugs? You can enable GitHub Issues and discuss bug reports, feature requests or let other developers submit changes after you review them. ' > README.md Die ''LICENSE''-Datei sollte den vollständigen Text der verwendeten Lizenz enthalten. Dieser kann z.B. von [[https://choosealicense.com/licenses/|choosealicense.com]] kopiert werden, dort ist auch zu jeder Lizenz ein kurzer Überblick der Bedingungen als Orientierung zu finden. Praktischer Nebeneffekt: GitHub zeigt neben der Projektbeschreibung einen Link zu der Datei an, und bei unterstützten Lizenzen zusätzlich eine Übersicht wie auf [[https://choosealicense.com/licenses/|choosealicense.com]]. Alternativ kann auch mit //wget// und //sed// eins der Templates aus [[https://github.com/licenses/license-templates|github.com/licenses/license-templates]] angepasst und als ''LICENSE''-Datei gespeichert werden. Hier z.B. für die MIT-Lizenz: YEAR=$(date +%Y) OWNER="Your name" wget -q -O- \ "https://raw.githubusercontent.com/licenses/license-templates/refs/heads/master/templates/mit.txt" \ | sed "s/{{ year }}/${YEAR}/" \ | sed "s/{{ organization }}/${OWNER}/" \ > LICENSE ==== .gitignore ==== > TODO ===== Einen leeren Branch erstellen ===== Normalerweise werden neue Git-Branches von einem vorhandenen Commit abgespalten, um z.B. neue experimentelle Features getrennt vom //main//-Branch zu entwickeln und diese erst später wieder mit diesem zusammen zu führen. In einzelnen Fällen will man aber bei Null anfangen und eine komplett getrennte Commit-History haben; z.B. für eine über GitHub Pages gehostete Webseite. Dafür wird zu einem sogenannten //orphaned branch// gewechselt, und alle vorhandenen Dateien im Repository werden gelöscht. Deshalb empfiehlt es sich das Repository neu zu klonen: # Repository klonen git clone git@github.com:user/repo.git repo-gh-pages cd gh-pages # Branch erstellen git checkout --orphan gh-pages git rm -rf . # Eine index.html für den ersten Commit erstellen. # -> Ich bevorzuge es zumindest eine Überschrift zu haben, aber die Datei kann auch genauso gut leer bleiben. echo '

My Awesome Project

' > index.html # Ersten Commit im neuen Branch erstellen und zu origin senden git add index.html git commit -m "Inital placeholder website" git push -u origin gh-pages