<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.tuxi.ddnss.de/index.php?action=history&amp;feed=atom&amp;title=Git-Spickzettel</id>
	<title>Git-Spickzettel - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.tuxi.ddnss.de/index.php?action=history&amp;feed=atom&amp;title=Git-Spickzettel"/>
	<link rel="alternate" type="text/html" href="https://wiki.tuxi.ddnss.de/index.php?title=Git-Spickzettel&amp;action=history"/>
	<updated>2026-04-04T20:10:14Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Tuxipedia</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://wiki.tuxi.ddnss.de/index.php?title=Git-Spickzettel&amp;diff=93&amp;oldid=prev</id>
		<title>Admin: Die Seite wurde neu angelegt: „= Git – Spickzettel für den Alltag =  Ich bin vergesslich! Leider. 🥲 Daher ein kurzer Überblick über die wichtigsten Git-Befehle für kleine Projekte (z. B. meinen Chatti-Client, Tuxi-Skripte, Wiki-Helferlein). Fokus: „Ich ändere manchmal Code, will ihn sauber committen und zu GitHub schieben – wie war das nochmal?“  Hier geht&#039;s um den Umgang mit einem laufenden Git. Zum Einrichten ist ein SSH-Kanal nötig. Zum Umgang mit SSH gibt&#039;s eine …“</title>
		<link rel="alternate" type="text/html" href="https://wiki.tuxi.ddnss.de/index.php?title=Git-Spickzettel&amp;diff=93&amp;oldid=prev"/>
		<updated>2025-12-07T18:26:40Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „= Git – Spickzettel für den Alltag =  Ich bin vergesslich! Leider. 🥲 Daher ein kurzer Überblick über die wichtigsten Git-Befehle für kleine Projekte (z. B. meinen Chatti-Client, Tuxi-Skripte, Wiki-Helferlein). Fokus: „Ich ändere manchmal Code, will ihn sauber committen und zu GitHub schieben – wie war das nochmal?“  Hier geht&amp;#039;s um den Umgang mit einem laufenden Git. Zum Einrichten ist ein SSH-Kanal nötig. Zum Umgang mit SSH gibt&amp;#039;s eine …“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Git – Spickzettel für den Alltag =&lt;br /&gt;
&lt;br /&gt;
Ich bin vergesslich! Leider. 🥲&lt;br /&gt;
Daher ein kurzer Überblick über die wichtigsten Git-Befehle für kleine Projekte (z. B. meinen Chatti-Client, Tuxi-Skripte, Wiki-Helferlein).&lt;br /&gt;
Fokus: „Ich ändere manchmal Code, will ihn sauber committen und zu GitHub schieben – wie war das nochmal?“&lt;br /&gt;
&lt;br /&gt;
Hier geht&amp;#039;s um den Umgang mit einem laufenden Git. Zum Einrichten ist ein SSH-Kanal nötig. Zum Umgang mit SSH gibt&amp;#039;s eine [[SSH|eigene SSH-Seite]]. Die enthält auch einen Abschnitt über SSH in Verbindung mit dem GitHub.&lt;br /&gt;
&lt;br /&gt;
== Grundbegriffe (in sehr kurz) ==&lt;br /&gt;
&lt;br /&gt;
; Repository (Repo)&lt;br /&gt;
: Projektordner mit Git-Historie. Enthält ein Unterverzeichnis &amp;lt;code&amp;gt;.git&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; Commit&lt;br /&gt;
: „Schnappschuss“ des Projektzustands mit Nachricht. Mehrere Commits bilden die Historie.&lt;br /&gt;
&lt;br /&gt;
; Branch&lt;br /&gt;
: „Arbeitslinie“. Meist heißt der Hauptbranch &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; (früher oft &amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
; Remote&lt;br /&gt;
: Entferntes Repo (z. B. auf GitHub). Standardname meistens &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Typischer Workflow nach Code-Änderungen ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Status prüfen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git status&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zeigt:&lt;br /&gt;
* welche Dateien geändert wurden,&lt;br /&gt;
* ob etwas zum Commit vorgemerkt ist,&lt;br /&gt;
* auf welchem Branch du bist.&lt;br /&gt;
&lt;br /&gt;
=== 2. Änderungen für Commit vormerken (stagen) ===&lt;br /&gt;
&lt;br /&gt;
Alles (schnell und bequem):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oder gezielt (empfohlen bei größeren Projekten):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add pfad/zur/datei.py&lt;br /&gt;
git add docs/README.md&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Commit erstellen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git commit -m &amp;quot;Kurz und sinnvoll beschreiben, was sich geändert hat&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
* &amp;lt;code&amp;gt;git commit -m &amp;quot;fix: Timeout im Doctor reduziert&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;git commit -m &amp;quot;docs: Tuxipedia-Artikel verlinkt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Änderungen nach GitHub pushen ===&lt;br /&gt;
&lt;br /&gt;
Wenn der Branch schon einen Remote-Branch hat (z. B. main → origin/main):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git push&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls Git meckert, dass kein Upstream gesetzt ist, einmalig:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git branch --show-current      # aktuellen Branch anzeigen (z. B. main)&lt;br /&gt;
git push -u origin main        # Branch &amp;#039;main&amp;#039; mit origin verknüpfen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach reicht wieder einfach &amp;lt;code&amp;gt;git push&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Änderungen ansehen ==&lt;br /&gt;
&lt;br /&gt;
=== Welche Dateien sind geändert? ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git status&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inhaltliche Unterschiede anzeigen (Diff) ===&lt;br /&gt;
&lt;br /&gt;
Alle Änderungen im Arbeitsverzeichnis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git diff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nur Änderungen in bereits gestagten Dateien:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git diff --cached&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diff für eine Datei:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git diff pfad/zur/datei.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Änderungen zurücknehmen (vorsichtig) ==&lt;br /&gt;
&lt;br /&gt;
=== Datei aus dem Index (Staging) zurückholen ===&lt;br /&gt;
&lt;br /&gt;
Falls man sich beim &amp;lt;code&amp;gt;git add&amp;lt;/code&amp;gt; vertan hat:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git restore --staged pfad/zur/datei.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Änderungen bleiben in der Datei, sind nur nicht mehr „zum Commit vorgemerkt“.&lt;br /&gt;
&lt;br /&gt;
=== Lokale Änderungen an einer Datei verwerfen ===&lt;br /&gt;
&lt;br /&gt;
Achtung: Nicht rückgängig zu machen, wenn man keinen Backup hat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git restore pfad/zur/datei.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei wird auf den Stand des letzten Commits zurückgesetzt.&lt;br /&gt;
&lt;br /&gt;
== Remote &amp;amp; Aktualisieren (pull) ==&lt;br /&gt;
&lt;br /&gt;
=== Änderungen von GitHub holen und einspielen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git pull&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Üblicher Ablauf:&lt;br /&gt;
* Git holt neue Commits von origin&lt;br /&gt;
* ggf. werden sie in deinen aktuellen Branch gemerged&lt;br /&gt;
&lt;br /&gt;
=== Neues Projekt von GitHub klonen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/USER/REPO.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optional mit Zielordner:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/USER/REPO.git mein-ordner&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Branches (nur das Nötigste) ==&lt;br /&gt;
&lt;br /&gt;
=== Neuen Branch erstellen und wechseln ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git switch -c feature/irgendwas&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Auf bestehenden Branch wechseln ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git switch main&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Alternativ geht auch noch &amp;lt;code&amp;gt;git checkout&amp;lt;/code&amp;gt;, aber &amp;lt;code&amp;gt;git switch&amp;lt;/code&amp;gt; ist moderner und klarer.)&lt;br /&gt;
&lt;br /&gt;
== Bei Konflikten (nur ganz grob) ==&lt;br /&gt;
&lt;br /&gt;
Konflikte entstehen, wenn &amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt; oder ein Merge Änderungen zusammenführen soll, die sich widersprechen.&lt;br /&gt;
&lt;br /&gt;
Typischer Ablauf:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt; ausführen&lt;br /&gt;
# Git meldet „merge conflict“ und kennzeichnet Stellen im Code mit &amp;lt;code&amp;gt;&amp;amp;lt;&amp;amp;lt;&amp;amp;lt;&amp;amp;lt;&amp;amp;lt;&amp;amp;lt;&amp;amp;lt;&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Datei im Editor öffnen, Konfliktstellen manuell auflösen&lt;br /&gt;
# gelöste Dateien wieder vormerken:&lt;br /&gt;
   &amp;lt;pre&amp;gt;git add pfad/zur/datei.py&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Merge abschließen:&lt;br /&gt;
   &amp;lt;pre&amp;gt;git commit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls es zu kompliziert wird: lieber kurz pausieren, nachdenken, diff ansehen – oder Rücksprache mit dem zukünftigen Ich halten. ;)&lt;br /&gt;
&lt;br /&gt;
== Minimal-Workflow zum Merken ==&lt;br /&gt;
&lt;br /&gt;
Der „Minimal-Spickzettel“, wenn du nur kurz was ändern willst:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git status&lt;br /&gt;
git add .&lt;br /&gt;
git commit -m &amp;quot;kurze Beschreibung&amp;quot;&lt;br /&gt;
git push&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit erledigst du 95 % der alltäglichen Git-Aufgaben.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>