<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[Joopi - Git]]></title>
		<link>https://forum.hermann-splitthoff.de/</link>
		<description><![CDATA[Joopi - https://forum.hermann-splitthoff.de]]></description>
		<pubDate>Thu, 23 Apr 2026 08:47:48 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Mitschrift Kurs 20210829]]></title>
			<link>https://forum.hermann-splitthoff.de/showthread.php?tid=1383</link>
			<pubDate>Sat, 23 Nov 2024 22:09:03 +0100</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.hermann-splitthoff.de/member.php?action=profile&uid=1">Joopi</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.hermann-splitthoff.de/showthread.php?tid=1383</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size"><span style="color: #0074d9;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Git-Kurs</span></span></span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #c10300;" class="mycode_color"><span style="font-size: medium;" class="mycode_size">Git</span></span></span><br />
<br />
Git konfigurieren auf der Konsole:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git config --global user.name "Jopii"<br />
git config --global user.email "info@jopii.de"<br />
git config --global core.editor "nano"</code></div></div><br />
mit<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>pwd</code></div></div><br />
das aktuelle Arbeitsverzeichnis anzeigen lassen.<br />
<br />
Ein neues Repository im aktuellen Verzeichnis erstellen:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git init</code></div></div><br />
Damit wird ein versteckter Ordner <span style="font-weight: bold;" class="mycode_b">.git</span> erzeugt.<br />
<br />
Prüfen, in welchem Zustand die Dateien sind:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git status</code></div></div><br />
Zeigt z.B. welche Dateien geändert wurden und vieles mehr.<br />
<br />
In der Staging Area werden Commits angelegt (Commits sind quasi kleine Versionsbunker).<br />
<br />
Eine Datei oder einen Ordner der Staging Area hinzufügen:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git add &lt;file&gt;<br />
git add &lt;folder&gt;<br />
git add . (mit dem Punkt wird alles hinzugefügt, was da ist)</code></div></div><br />
Eine mit <span style="font-weight: bold;" class="mycode_b">add</span> zugefügte Datei aus der Staging Area entfernen:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git rm --cached &lt;file&gt;</code></div></div><br />
Das Hinzufügen wird quasi rückgängig gemacht.<br />
<br />
Eine mit <span style="font-weight: bold;" class="mycode_b">add</span> hinzugefügte Datei kann weiterhin bearbeitet werden.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git status</code></div></div><br />
Im Status wird gezeigt, dass die Datei in der Staging Aarea ist, aber geändert wurde (**add** wieder ausführen oder **restore**, um Änderungen zu verwerfen)<br />
<br />
Um Datei oder Ordner in ein Repository zu bringen:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git commit -m &lt;message&gt;</code></div></div><br />
Die Option <span style="font-weight: bold;" class="mycode_b">-m</span> muss von einer Erklärung zum Commit-Inhalt, meist sind es Änderungen, gefolgt ausgeführt werden.<br />
<br />
Wenn <span style="font-weight: bold;" class="mycode_b">git commit</span> ohne Option aufgerufen wird, dann öffnet sich eine Datei, in die man dann den gewünschten Text oben als kurzer Titel und dann als Langtext schreiben kann.<br />
<br />
Kurze Änderungsmitteilungen werden über die Option <span style="font-weight: bold;" class="mycode_b">-m</span> gefolgt von "Nachrichtentext" in das Repository übernommen.<br />
<br />
Änderung im Commit bzw. im Repository anzeigen lassen (Commit-Historie):<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git log</code></div></div><br />
Das ist die normale Ausgabe.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git log -p</code></div></div><br />
Zeigt mehr Änderungen in den Einzelheiten, also sehr ausführlich.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git log --online</code></div></div><br />
Eher verkürzte Darstellung der Änderungen in einer Zeile.<br />
  <br />
Commits abändern, weil doch noch nicht richtig (immer nur lokal verwenden, wenn es sein muss).<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git commit --amend</code></div></div><br />
Der letzte Commit wird demnach überschrieben. Bei Remote-Repositories ist das nicht gut.<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #c10300;" class="mycode_color"><span style="font-size: medium;" class="mycode_size">Wie arbeitet ".gitignore"?</span></span></span><br />
<br />
Es wird eine Datei mit dem Namen ".gitignore" angelegt, in der z.B. ganze Pfade oder eben auch nur Dateien eingetragen werden, die vom Commit ausgenommen werden sollen. Das könnn z.B. auch Dateien sein, in denen Zugangsparameter für Datenbanken enthalten sind oder andere sensible Daten.<br />
<br />
Es können auch Datei-Extensions wie <span style="font-weight: bold;" class="mycode_b">*.txt</span> genutzt werden.<br />
<br />
Man kann die Datei <span style="font-weight: bold;" class="mycode_b">.gitignore</span> selber schreiben. Aber man kann auch auf vorgefertige Dateien auf GitHub zugreifen: <a href="https://github.com/github/gitignore" target="_blank" rel="noopener" class="mycode_url">.gitignore</a><br />
<br />
Diese Ignore-Dateien sind themenspezifisch vorhanden. Könnte später mal interessant sein.<br />
<br />
Alle Änderungen au der Staging Aarea herausnehmen (das Gegenteil von add - unstaging):<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git reset</code></div></div><br />
das betrifft alle Dateien<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git reset &lt;filename&gt;</code></div></div><br />
betrifft nur die angegebene Datei<br />
<br />
Wenn man den <span style="font-weight: bold;" class="mycode_b">reset</span>-Befehl mit der 7-stelligen ID des Commits ausführt, wird das ganze Commit zurückgesetzt.<br />
<br />
Alle Änderungen in der Datei Zeile für Zeile anzeigen lassen:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git blame &lt;files&gt;<br />
git blame --color-lines &lt;filename&gt;</code></div></div><br />
<hr class="mycode_hr" />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #c10300;" class="mycode_color"><span style="font-size: medium;" class="mycode_size">GitHub</span></span></span><br />
<br />
In GitHub wurde aus <span style="font-weight: bold;" class="mycode_b">master</span> nun <span style="font-weight: bold;" class="mycode_b">main</span>, wenn es um den Hauptzweig geht.<br />
<br />
Das ist dann wichtig, wenn ein Repository konfiguriert wird.<br />
<br />
Remote-Repositories clonen:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git clone &lt;url&gt;</code></div></div><br />
Das gilt auch für eigene Projekte, wenn das lokale git nicht mehr zuständig ist, sondern alles auf github liegt.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git remote -v</code></div></div><br />
Zeigt an, welche remote Repositories getrackt werden.<br />
  <br />
Bei <span style="font-weight: bold;" class="mycode_b">git status</span> wird angezeigt <span style="font-weight: bold;" class="mycode_b">branch master</span> und <span style="font-weight: bold;" class="mycode_b">origin/master</span>. Der erste Master ist der lokale, der zweite Master (oder main) ist der Master vom Clone!<br />
<br />
Prüfen, welche Branches vorhanden sind:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git branch<br />
git branch -v<br />
git branch -vv</code></div></div><br />
(zeigt an, welchen origin/master er trackt<br />
<br />
 Herunterladen von Commits und Branches von einem remote Repository:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git fetch</code></div></div><br />
 Wenn der Clone weiter ist, da mit fetch die Neuerungen geholt wurden, wird mit dem lokalen Master zusammengeführt:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git merge origin/master</code></div></div><br />
Wenn ich alleine an dem Projekt arbeiten, benötige ich die obigen Möglichkeiten nicht (nur push zum Hochladen).<br />
<br />
<hr class="mycode_hr" />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #c10300;" class="mycode_color">GitHub für eigene Projekte</span></span><br />
<br />
Es muss ein Account auf GitHub vorhanden sein.<br />
Das Repository muss einen Namen haben: <span style="font-weight: bold;" class="mycode_b">orbitjopii</span><br />
<br />
Um das lokale Repository auf GitHub zu bringen muss es heißen:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git remote add origin https:/...../orbitjopii.git</code></div></div><br />
 Um dann die Daten aus dem lokalen Repository in das remote Repository zu bekommen, muss es heßen:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git push -u origin master bzw. main</code></div></div><br />
Push muss auch später genutzt werden.<br />
<br />
Änderungen zu GitHub übertragen:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git add ...</code></div></div><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git commit -m message</code></div></div><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git log --oneline --branches --remotes --graph</code></div></div><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git push</code></div></div><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git branch -vv</code></div></div><br />
Prüfen, ob die Änderung im origin/master angekommen ist.<br />
  <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git log --oneline --branches --remotes --graph</code></div></div><br />
Auch hier kann man prüfen, ob <span style="font-weight: bold;" class="mycode_b">master und origin/master</span> gleich sind.<br />
  <br />
<hr class="mycode_hr" />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>(base) xxx@xxx:/media/django/webserver/meine_projekte/janiekorbit&#36; git pull origin<br />
Username for 'https://github.com': xxx<br />
Password for 'https://Janiekmulder@github.com': <br />
remote: Enumerating objects: 4, done.<br />
remote: Counting objects: 100% (4/4), done.<br />
remote: Compressing objects: 100% (3/3), done.<br />
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0<br />
Entpacke Objekte: 100% (3/3), 858 Bytes | 858.00 KiB/s, fertig.<br />
Von https://github.com/Janiekmulder/kleinerorbit<br />
  0f8763f..192422c  main      -&gt; origin/main<br />
Merge made by the 'recursive' strategy.<br />
README.md | 3 +++<br />
1 file changed, 3 insertions(+)<br />
create mode 100644 README.md</code></div></div><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>(base) xxx@xxx:/media/django/webserver/meine_projekte/janiekorbit&#36; git branch -vv<br />
* main 7c007ff [origin/main: 2 voraus] Merge branch 'main' of https://github.com/Janiekmulder/kleinerorbit into main<br />
(base) xxx@xxx:/media/django/webserver/meine_projekte/janiekorbit&#36; ls -al<br />
insgesamt 24<br />
drwxrwxr-x 3 xxx xxx 4096 Aug 28 20:59 .<br />
drwxrwxr-x 6 xxx xxx 4096 Aug 28 20:29 ..<br />
drwxrwxr-x 8 xxx xxx 4096 Aug 28 21:01 .git<br />
-rw-rw-r-- 1 xxx xxx  38 Aug 28 18:09 .gitignore<br />
-rw-rw-r-- 1 xxx xxx  491 Aug 28 20:56 index.html<br />
-rw-rw-r-- 1 xxx xxx  169 Aug 28 20:59 README.md<br />
(base) xxx@xxx:/media/django/webserver/meine_projekte/janiekorbit&#36; git push origin<br />
Username for 'https://github.com': xxx<br />
Password for 'https://xxxx@github.com': <br />
Objekte aufzählen: 9, fertig.<br />
Zähle Objekte: 100% (8/8), fertig.<br />
Delta-Kompression verwendet bis zu 16 Threads.<br />
Komprimiere Objekte: 100% (5/5), fertig.<br />
Schreibe Objekte: 100% (5/5), 897 Bytes | 897.00 KiB/s, fertig.<br />
Gesamt 5 (Delta 1), Wiederverwendet 0 (Delta 0)<br />
remote: Resolving deltas: 100% (1/1), completed with 1 local object.<br />
To https://github.com/Janiekmulder/kleinerorbit.git<br />
  192422c..7c007ff  main -&gt; main</code></div></div> <br />
<hr class="mycode_hr" />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #9a00b2;" class="mycode_color"><span style="font-size: medium;" class="mycode_size">Mitschrift Shellscript von Bryan Jenks wegen Cronjob, der Shell ausführt und Git/GitHub aktualisiert</span></span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>ZK_PATH="Pfad zum Vault"<br />
<br />
cd "&#36;ZK_PATH"<br />
<br />
git pull<br />
<br />
CHANGES_EXISTS="&#36;(git status --porcelain | wc -l)"<br />
<br />
if [ "&#36;CHANGES_EXISTS" -eq @ ]; then<br />
  exit @<br />
fi<br />
<br />
git pull<br />
git add .<br />
git commit -q -m "Last Sync: &#36;(date +'%Y.%m-%d %H:%M:&#36;X')"<br />
git push -q</code></div></div><br />
<hr class="mycode_hr" />
How to git push using gitHub token on the command line:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git push https://&lt;GITHUB_ACCESS_TOKEN&gt;@github.com/&lt;GITHUB_USERNAME&gt;/&lt;REPOSITORY_NAME&gt;.git</code></div></div><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git push https://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@github.com/Janiekmulder/orbit2.git</code></div></div><br />
<hr class="mycode_hr" />
Neuer Versuch am 29.08.2021 um 10:48 Uhr<br />
<br />
…or push an existing repository from the command line:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git remote add origin https://github.com/Janiekmulder/orbit2.git<br />
git branch -M main<br />
git push -u origin main</code></div></div><br />
Alle Anweisungen, wenn ein neues Repository nackt erstellt wurde.<br />
<br />
Quick setup — if you’ve done this kind of thing before<br />
or <br />
<a href="https://github.com/Janiekmulder/orbit2.git" target="_blank" rel="noopener" class="mycode_url">https://github.com/Janiekmulder/orbit2.git</a><br />
<br />
Get started by creating a new file or uploading an existing file. We recommend every repository include a README, LICENSE, and .gitignore.<br />
<br />
…or create a new repository on the command line<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>echo "# orbit2" &gt;&gt; README.md<br />
git init<br />
git add README.md<br />
git commit -m "first commit"<br />
git branch -M main<br />
git remote add origin https://github.com/Janiekmulder/orbit2.git<br />
git push -u origin main</code></div></div><br />
…or push an existing repository from the command line<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git remote add origin https://github.com/Janiekmulder/orbit2.git<br />
git branch -M main<br />
git push -u origin main</code></div></div><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git push https://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@github.com/Janiekmulder/orbitjopii.git</code></div></div>]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size"><span style="color: #0074d9;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Git-Kurs</span></span></span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #c10300;" class="mycode_color"><span style="font-size: medium;" class="mycode_size">Git</span></span></span><br />
<br />
Git konfigurieren auf der Konsole:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git config --global user.name "Jopii"<br />
git config --global user.email "info@jopii.de"<br />
git config --global core.editor "nano"</code></div></div><br />
mit<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>pwd</code></div></div><br />
das aktuelle Arbeitsverzeichnis anzeigen lassen.<br />
<br />
Ein neues Repository im aktuellen Verzeichnis erstellen:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git init</code></div></div><br />
Damit wird ein versteckter Ordner <span style="font-weight: bold;" class="mycode_b">.git</span> erzeugt.<br />
<br />
Prüfen, in welchem Zustand die Dateien sind:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git status</code></div></div><br />
Zeigt z.B. welche Dateien geändert wurden und vieles mehr.<br />
<br />
In der Staging Area werden Commits angelegt (Commits sind quasi kleine Versionsbunker).<br />
<br />
Eine Datei oder einen Ordner der Staging Area hinzufügen:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git add &lt;file&gt;<br />
git add &lt;folder&gt;<br />
git add . (mit dem Punkt wird alles hinzugefügt, was da ist)</code></div></div><br />
Eine mit <span style="font-weight: bold;" class="mycode_b">add</span> zugefügte Datei aus der Staging Area entfernen:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git rm --cached &lt;file&gt;</code></div></div><br />
Das Hinzufügen wird quasi rückgängig gemacht.<br />
<br />
Eine mit <span style="font-weight: bold;" class="mycode_b">add</span> hinzugefügte Datei kann weiterhin bearbeitet werden.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git status</code></div></div><br />
Im Status wird gezeigt, dass die Datei in der Staging Aarea ist, aber geändert wurde (**add** wieder ausführen oder **restore**, um Änderungen zu verwerfen)<br />
<br />
Um Datei oder Ordner in ein Repository zu bringen:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git commit -m &lt;message&gt;</code></div></div><br />
Die Option <span style="font-weight: bold;" class="mycode_b">-m</span> muss von einer Erklärung zum Commit-Inhalt, meist sind es Änderungen, gefolgt ausgeführt werden.<br />
<br />
Wenn <span style="font-weight: bold;" class="mycode_b">git commit</span> ohne Option aufgerufen wird, dann öffnet sich eine Datei, in die man dann den gewünschten Text oben als kurzer Titel und dann als Langtext schreiben kann.<br />
<br />
Kurze Änderungsmitteilungen werden über die Option <span style="font-weight: bold;" class="mycode_b">-m</span> gefolgt von "Nachrichtentext" in das Repository übernommen.<br />
<br />
Änderung im Commit bzw. im Repository anzeigen lassen (Commit-Historie):<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git log</code></div></div><br />
Das ist die normale Ausgabe.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git log -p</code></div></div><br />
Zeigt mehr Änderungen in den Einzelheiten, also sehr ausführlich.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git log --online</code></div></div><br />
Eher verkürzte Darstellung der Änderungen in einer Zeile.<br />
  <br />
Commits abändern, weil doch noch nicht richtig (immer nur lokal verwenden, wenn es sein muss).<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git commit --amend</code></div></div><br />
Der letzte Commit wird demnach überschrieben. Bei Remote-Repositories ist das nicht gut.<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #c10300;" class="mycode_color"><span style="font-size: medium;" class="mycode_size">Wie arbeitet ".gitignore"?</span></span></span><br />
<br />
Es wird eine Datei mit dem Namen ".gitignore" angelegt, in der z.B. ganze Pfade oder eben auch nur Dateien eingetragen werden, die vom Commit ausgenommen werden sollen. Das könnn z.B. auch Dateien sein, in denen Zugangsparameter für Datenbanken enthalten sind oder andere sensible Daten.<br />
<br />
Es können auch Datei-Extensions wie <span style="font-weight: bold;" class="mycode_b">*.txt</span> genutzt werden.<br />
<br />
Man kann die Datei <span style="font-weight: bold;" class="mycode_b">.gitignore</span> selber schreiben. Aber man kann auch auf vorgefertige Dateien auf GitHub zugreifen: <a href="https://github.com/github/gitignore" target="_blank" rel="noopener" class="mycode_url">.gitignore</a><br />
<br />
Diese Ignore-Dateien sind themenspezifisch vorhanden. Könnte später mal interessant sein.<br />
<br />
Alle Änderungen au der Staging Aarea herausnehmen (das Gegenteil von add - unstaging):<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git reset</code></div></div><br />
das betrifft alle Dateien<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git reset &lt;filename&gt;</code></div></div><br />
betrifft nur die angegebene Datei<br />
<br />
Wenn man den <span style="font-weight: bold;" class="mycode_b">reset</span>-Befehl mit der 7-stelligen ID des Commits ausführt, wird das ganze Commit zurückgesetzt.<br />
<br />
Alle Änderungen in der Datei Zeile für Zeile anzeigen lassen:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git blame &lt;files&gt;<br />
git blame --color-lines &lt;filename&gt;</code></div></div><br />
<hr class="mycode_hr" />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #c10300;" class="mycode_color"><span style="font-size: medium;" class="mycode_size">GitHub</span></span></span><br />
<br />
In GitHub wurde aus <span style="font-weight: bold;" class="mycode_b">master</span> nun <span style="font-weight: bold;" class="mycode_b">main</span>, wenn es um den Hauptzweig geht.<br />
<br />
Das ist dann wichtig, wenn ein Repository konfiguriert wird.<br />
<br />
Remote-Repositories clonen:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git clone &lt;url&gt;</code></div></div><br />
Das gilt auch für eigene Projekte, wenn das lokale git nicht mehr zuständig ist, sondern alles auf github liegt.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git remote -v</code></div></div><br />
Zeigt an, welche remote Repositories getrackt werden.<br />
  <br />
Bei <span style="font-weight: bold;" class="mycode_b">git status</span> wird angezeigt <span style="font-weight: bold;" class="mycode_b">branch master</span> und <span style="font-weight: bold;" class="mycode_b">origin/master</span>. Der erste Master ist der lokale, der zweite Master (oder main) ist der Master vom Clone!<br />
<br />
Prüfen, welche Branches vorhanden sind:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git branch<br />
git branch -v<br />
git branch -vv</code></div></div><br />
(zeigt an, welchen origin/master er trackt<br />
<br />
 Herunterladen von Commits und Branches von einem remote Repository:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git fetch</code></div></div><br />
 Wenn der Clone weiter ist, da mit fetch die Neuerungen geholt wurden, wird mit dem lokalen Master zusammengeführt:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git merge origin/master</code></div></div><br />
Wenn ich alleine an dem Projekt arbeiten, benötige ich die obigen Möglichkeiten nicht (nur push zum Hochladen).<br />
<br />
<hr class="mycode_hr" />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #c10300;" class="mycode_color">GitHub für eigene Projekte</span></span><br />
<br />
Es muss ein Account auf GitHub vorhanden sein.<br />
Das Repository muss einen Namen haben: <span style="font-weight: bold;" class="mycode_b">orbitjopii</span><br />
<br />
Um das lokale Repository auf GitHub zu bringen muss es heißen:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git remote add origin https:/...../orbitjopii.git</code></div></div><br />
 Um dann die Daten aus dem lokalen Repository in das remote Repository zu bekommen, muss es heßen:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git push -u origin master bzw. main</code></div></div><br />
Push muss auch später genutzt werden.<br />
<br />
Änderungen zu GitHub übertragen:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git add ...</code></div></div><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git commit -m message</code></div></div><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git log --oneline --branches --remotes --graph</code></div></div><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git push</code></div></div><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git branch -vv</code></div></div><br />
Prüfen, ob die Änderung im origin/master angekommen ist.<br />
  <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git log --oneline --branches --remotes --graph</code></div></div><br />
Auch hier kann man prüfen, ob <span style="font-weight: bold;" class="mycode_b">master und origin/master</span> gleich sind.<br />
  <br />
<hr class="mycode_hr" />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>(base) xxx@xxx:/media/django/webserver/meine_projekte/janiekorbit&#36; git pull origin<br />
Username for 'https://github.com': xxx<br />
Password for 'https://Janiekmulder@github.com': <br />
remote: Enumerating objects: 4, done.<br />
remote: Counting objects: 100% (4/4), done.<br />
remote: Compressing objects: 100% (3/3), done.<br />
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0<br />
Entpacke Objekte: 100% (3/3), 858 Bytes | 858.00 KiB/s, fertig.<br />
Von https://github.com/Janiekmulder/kleinerorbit<br />
  0f8763f..192422c  main      -&gt; origin/main<br />
Merge made by the 'recursive' strategy.<br />
README.md | 3 +++<br />
1 file changed, 3 insertions(+)<br />
create mode 100644 README.md</code></div></div><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>(base) xxx@xxx:/media/django/webserver/meine_projekte/janiekorbit&#36; git branch -vv<br />
* main 7c007ff [origin/main: 2 voraus] Merge branch 'main' of https://github.com/Janiekmulder/kleinerorbit into main<br />
(base) xxx@xxx:/media/django/webserver/meine_projekte/janiekorbit&#36; ls -al<br />
insgesamt 24<br />
drwxrwxr-x 3 xxx xxx 4096 Aug 28 20:59 .<br />
drwxrwxr-x 6 xxx xxx 4096 Aug 28 20:29 ..<br />
drwxrwxr-x 8 xxx xxx 4096 Aug 28 21:01 .git<br />
-rw-rw-r-- 1 xxx xxx  38 Aug 28 18:09 .gitignore<br />
-rw-rw-r-- 1 xxx xxx  491 Aug 28 20:56 index.html<br />
-rw-rw-r-- 1 xxx xxx  169 Aug 28 20:59 README.md<br />
(base) xxx@xxx:/media/django/webserver/meine_projekte/janiekorbit&#36; git push origin<br />
Username for 'https://github.com': xxx<br />
Password for 'https://xxxx@github.com': <br />
Objekte aufzählen: 9, fertig.<br />
Zähle Objekte: 100% (8/8), fertig.<br />
Delta-Kompression verwendet bis zu 16 Threads.<br />
Komprimiere Objekte: 100% (5/5), fertig.<br />
Schreibe Objekte: 100% (5/5), 897 Bytes | 897.00 KiB/s, fertig.<br />
Gesamt 5 (Delta 1), Wiederverwendet 0 (Delta 0)<br />
remote: Resolving deltas: 100% (1/1), completed with 1 local object.<br />
To https://github.com/Janiekmulder/kleinerorbit.git<br />
  192422c..7c007ff  main -&gt; main</code></div></div> <br />
<hr class="mycode_hr" />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #9a00b2;" class="mycode_color"><span style="font-size: medium;" class="mycode_size">Mitschrift Shellscript von Bryan Jenks wegen Cronjob, der Shell ausführt und Git/GitHub aktualisiert</span></span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>ZK_PATH="Pfad zum Vault"<br />
<br />
cd "&#36;ZK_PATH"<br />
<br />
git pull<br />
<br />
CHANGES_EXISTS="&#36;(git status --porcelain | wc -l)"<br />
<br />
if [ "&#36;CHANGES_EXISTS" -eq @ ]; then<br />
  exit @<br />
fi<br />
<br />
git pull<br />
git add .<br />
git commit -q -m "Last Sync: &#36;(date +'%Y.%m-%d %H:%M:&#36;X')"<br />
git push -q</code></div></div><br />
<hr class="mycode_hr" />
How to git push using gitHub token on the command line:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git push https://&lt;GITHUB_ACCESS_TOKEN&gt;@github.com/&lt;GITHUB_USERNAME&gt;/&lt;REPOSITORY_NAME&gt;.git</code></div></div><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git push https://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@github.com/Janiekmulder/orbit2.git</code></div></div><br />
<hr class="mycode_hr" />
Neuer Versuch am 29.08.2021 um 10:48 Uhr<br />
<br />
…or push an existing repository from the command line:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git remote add origin https://github.com/Janiekmulder/orbit2.git<br />
git branch -M main<br />
git push -u origin main</code></div></div><br />
Alle Anweisungen, wenn ein neues Repository nackt erstellt wurde.<br />
<br />
Quick setup — if you’ve done this kind of thing before<br />
or <br />
<a href="https://github.com/Janiekmulder/orbit2.git" target="_blank" rel="noopener" class="mycode_url">https://github.com/Janiekmulder/orbit2.git</a><br />
<br />
Get started by creating a new file or uploading an existing file. We recommend every repository include a README, LICENSE, and .gitignore.<br />
<br />
…or create a new repository on the command line<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>echo "# orbit2" &gt;&gt; README.md<br />
git init<br />
git add README.md<br />
git commit -m "first commit"<br />
git branch -M main<br />
git remote add origin https://github.com/Janiekmulder/orbit2.git<br />
git push -u origin main</code></div></div><br />
…or push an existing repository from the command line<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git remote add origin https://github.com/Janiekmulder/orbit2.git<br />
git branch -M main<br />
git push -u origin main</code></div></div><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git push https://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@github.com/Janiekmulder/orbitjopii.git</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Das Git-MOC]]></title>
			<link>https://forum.hermann-splitthoff.de/showthread.php?tid=1382</link>
			<pubDate>Sat, 23 Nov 2024 21:53:36 +0100</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.hermann-splitthoff.de/member.php?action=profile&uid=1">Joopi</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.hermann-splitthoff.de/showthread.php?tid=1382</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="color: #005dc2;" class="mycode_color"><span style="font-size: x-large;" class="mycode_size">Das MOC für Git</span></span></span><br />
<br />
<a href="https://forum.hermann-splitthoff.de/showthread.php?tid=49" target="_blank" rel="noopener" class="mycode_url">clone Repository</a> - Wie wird ein Github-Repository gecloned?<br />
<a href="https://forum.hermann-splitthoff.de/showthread.php?tid=50" target="_blank" rel="noopener" class="mycode_url">submodul Repository</a> - Wie wird ein Submodul installiert?<br />
<a href="https://forum.hermann-splitthoff.de/showthread.php?tid=52" target="_blank" rel="noopener" class="mycode_url">Doku Git und GitHub</a> - Meine Dokumentation von 15.11.2020<br />
<a href="https://forum.hermann-splitthoff.de/showthread.php?tid=1383" target="_blank" rel="noopener" class="mycode_url">Mitschrift Udemy-Kurs 20210829</a> - Den Udemy-Kurs habe ich komplett durch und Notizen gemacht.<br />
<a href="https://forum.hermann-splitthoff.de/showthread.php?tid=51" target="_blank" rel="noopener" class="mycode_url">Git Submodul clonen</a> - clone oder submodule add? Wo ist der Unterschied.]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="color: #005dc2;" class="mycode_color"><span style="font-size: x-large;" class="mycode_size">Das MOC für Git</span></span></span><br />
<br />
<a href="https://forum.hermann-splitthoff.de/showthread.php?tid=49" target="_blank" rel="noopener" class="mycode_url">clone Repository</a> - Wie wird ein Github-Repository gecloned?<br />
<a href="https://forum.hermann-splitthoff.de/showthread.php?tid=50" target="_blank" rel="noopener" class="mycode_url">submodul Repository</a> - Wie wird ein Submodul installiert?<br />
<a href="https://forum.hermann-splitthoff.de/showthread.php?tid=52" target="_blank" rel="noopener" class="mycode_url">Doku Git und GitHub</a> - Meine Dokumentation von 15.11.2020<br />
<a href="https://forum.hermann-splitthoff.de/showthread.php?tid=1383" target="_blank" rel="noopener" class="mycode_url">Mitschrift Udemy-Kurs 20210829</a> - Den Udemy-Kurs habe ich komplett durch und Notizen gemacht.<br />
<a href="https://forum.hermann-splitthoff.de/showthread.php?tid=51" target="_blank" rel="noopener" class="mycode_url">Git Submodul clonen</a> - clone oder submodule add? Wo ist der Unterschied.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Doku Git und GitHub]]></title>
			<link>https://forum.hermann-splitthoff.de/showthread.php?tid=52</link>
			<pubDate>Sat, 07 Jan 2023 13:20:19 +0100</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.hermann-splitthoff.de/member.php?action=profile&uid=1">Joopi</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.hermann-splitthoff.de/showthread.php?tid=52</guid>
			<description><![CDATA[Die Nutzung von Git und GitHub kann in Projekten von Vorteil sein. Hier dokumentiere ich, wie Git zu nutzen ist. Die Nutzung von GitHub ist sekundär, denn dieses benötige ich nur, sollte ich meine Projekte im Internet öffentlich machen wollen.<br />
<br />
Ich nutze zum Üben die Lehrgangsreihe von <a href="https://www.youtube.com/watch?v=3RjQznt-8kE&amp;list=PL4cUxeGkcC9goXbgTDQ0n_4TBzOO0ocPR" target="_blank" rel="noopener" class="mycode_url">The Net Ninja</a>.<br />
<br />
<br />
<hr class="mycode_hr" />
<br />
<br />
Meine eigenen Vorbemerkungen:<br />
<br />
Es macht im Grunde genommen Sinn, dass die Projekte, an denen gearbeitet wird, zentral auf dem lokalen Rechner abgelegt werden. Somit ist auch nur ein Oberprojektordner notwendig.  Dieser Oberprojektordner wird dann wiederum mit weiteren Ordnern je Einzelprojekt bestückt. Diese Ordner werden, sofern sie von Git zu nutzen sind, später durch die Initialisierung zu Repositories. Um nämlich Git in Gänze richtig zu nutzen, müssen Git-Repositories angelegt sein.<br />
<br />
Das bedeutet, dass in dem Projektordner ein versteckter Ordner <span style="font-weight: bold;" class="mycode_b">.git</span> angelegt wird, in dem dann alle Veränderungen nachgehalten, also getrackt, werden.<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="color: #005dc2;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Nachdem Git installiert wurde</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git config --globel user.name Tuennes</code></div></div><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git config --globel user.email tuennes@yahoo.de</code></div></div><br />
Damit ist Git personalisiert.<br />
<br />
Um festzustellen, welcher User für Git angelegt werde, ist folgender Befehl auf der Konsole abzusetzen.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git config user.name</code></div></div><br />
<span style="color: #005dc2;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Projekt initialisieren</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git init</code></div></div><br />
Mit diesem Befehl wird das Repository initiiert. Innerhalb des Ordner bzw. des Repositories können weitere Ordner erstellt werden. Auf der Konsole kann direkt mit dem Befehl ```touch``` eine leere Textdatei erzeugt werden, z.B. index.html.<br />
<br />
<span style="color: #005dc2;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Welche Dateien sind im Repo</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git status</code></div></div><br />
Dieser Befehl zeigt alle im Repo vorhandenen Dateien und deren aktuellen Status.<br />
<br />
Ein Status ist z.B. untracked. Das bedeutet, die Datei ist da, aber noch nicht in der Staging-Area enthalten.<br />
<br />
Dateien, die noch nicht in der Staging-Area sind, werden in der Farbe Rot dargestellt. Dateien, die bereits hinzugefügt wurden, werden in der Farbe Grün angezeigt.<br />
<br />
Die textliche Beschreibung ist aber auch ausreichend, um zu erkennen, welche Dateien hinzuzufügen sind. Das muss nicht einzeln geschehen.<br />
<br />
<span style="color: #005dc2;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Datei in Staging-Area hinzufügen</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git add index.html</code></div></div><br />
Um eine Datei in die Staging-Area hinzuzufügen, bedarf es nur dem vorgenannten Befehl.<br />
<br />
<span style="color: #005dc2;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Datei aus Staging-Area löschen</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git rm --cached index.html</code></div></div><br />
Sofern eine Datei im Repo nicht mehr benötigt wird, kann sie mit dem vorgenannten Befehl aus der Staging-Area herausgelöscht werden. Das bedeutet nicht, dass die Datei physisch gelöscht wurde. Sie ist nur nicht mehr im Repo.<br />
<br />
<span style="color: #005dc2;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Alle Dateien hinzufügen</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git add .</code></div></div><br />
In einem großen Projekt wäre es sehr aufwendig, wenn jede einzelne Datei, die erstellt wurde, dem Repo hinzuzufügen wäre. Mit dem vorgenannten Befehl werden alle neuen Dateien, die noch nicht im Repo sind, hinzugefügt.<br />
<br />
<br />
<hr class="mycode_hr" />
<br />
<br />
Wichtig ist, dass zu bestehenden Dateien, die geändert wurden, entsprechende Mitteilungen über den Grund der Änderung, vermerkt werden. Das ist das Kommittment, welches sehr wichtig ist.<br />
<br />
<span style="color: #005dc2;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Ein Kommitment absetzen</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git commit -m "added index and styles files"</code></div></div><br />
Dieser Befehl ist relativ global und bezieht sich nicht auf einzelne Dateien, sondern auf die Dateien, die neu sind bzw. geändert wurden.<br />
<br />
Die Option **-m** bedeutet, dass eine Mail erzeugt und an die Projektteilnehmer gesendet wird.<br />
<br />
Der notwendige und wichtige Kommentar zum Kommitment wird hinter der Option in Hochkommata gesetzt und sollte die Situation erklären.<br />
<br />
Mit diesem Kommitment wird eine eindeutige ID erzeugt, die im Repo abgespeichert wird.<br />
<br />
Es wird eine Info ausgegeben, die u.a. enthält, wieviele Zeilen insgesamt hinzugefügt (vielleicht auch gelöscht) wurden. Werden zum Projektbeginn mehrere Dateien mit einem Kommitment belegt, so sind alle vorhandenen Zeilen in Summe dann in der Info zu sehen.<br />
<br />
<span style="color: #005dc2;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Logfiles der Kommitments ansehen</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git log</code></div></div><br />
Sobald z.B. bestehende Dateien verändert werden, müssen diese irgendwann wieder der Staging-Area mitgeteilt werden. Das geht über den "add"-Befehl und es wird angezeigt, welche Dateien geändert (modifiziert) wurden.<br />
<br />
Sobald das passiert ist, sollte wieder ein Kommitment erfolgen, welches wieder geloggt wird.<br />
<br />
Mit dem obigen Befehl, können alle abgesetzten Kommitments betrachtet werden. Allerdings werden hierbei alle Einträge im Logfile, also in der Historie, angezeigt. Das kann sehr unübersichtlich sein, wenn das Projekt groß ist.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git log --oneline</code></div></div><br />
Um nicht erschlagen zu werden, wird bei der Ausführung des obigen Befehls je Kommitment nur eine Zeile ausgegeben, die eine Zusammenfassung der Veränderungen beinhaltet.<br />
<br />
<hr class="mycode_hr" />
<br />
Das einfache Hinzufügen und Betrachten der Dateien bzw. der Einträge in der Log-Datei ist nicht alles, denn es werden oftmals auch Fehler gemacht, die wieder zu beheben sind.<br />
<br />
Hier sind zum Kommitment 3 Befehle vorhanden:<br />
<ul class="mycode_list"><li>Checkout commit<br />
</li>
<li>Revert commit<br />
</li>
<li>Reset commit<br />
</li>
</ul>
<br />
<span style="color: #005dc2;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Ein Kommitment zurücknehmen</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git checkout af6b84c</code></div></div><br />
Sofern etwas falsch war oder zu verändern ist, kann ein Kommitment wieder zurückgenommen werden. Dazu ist über die Loghistorie die entsprechende ID zu erkunden und kann dann mit dem obigen Befehl wieder aus den Kommittments herausgenommen werden.<br />
<br />
Die Befehle für Revert und Reset kann ich aus der englischen Erklärung heraus nicht gut verstehen. Reset ist auf jeden Fall eine eher extreme Maßnahme. Beide Befehle benötigen immer die ID des Kommitments.<br />
<br />
<hr class="mycode_hr" />
<br />
Die Erstellung von Branches (Zweige oder Äste eine Baumes) ist die wohl wichtigste Eigenschaft von Git.<br />
<br />
Neben dem Master-Branch (Info: Master wurde zu Main auf GitHub umbenannt) können beliebig viele Branches angelegt werden.<br />
<br />
Branches sind notwendig, um neuen Code erst zu testen. Sollte er dem Projekt und den Anforderungen genügen, kann der Branch mit dem Master-Branch zusammengeführt (gemerged) werden.<br />
<br />
<span style="color: #005dc2;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Einen neuen Branch erstellen</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git branch neuerbranch</code></div></div><br />
Mit dem vorgenannten Befehl wurde ein Branch erstellt.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git branch -a</code></div></div><br />
Um feststellen zu können, welche Branches vorhanden sind, muss obiger Befehl abgesetzt werden.<br />
<br />
Wenn dieser Befehl abgesetzt wird, werden alle Branches gezeigt, auch der Master-Branch. Durch ein vorangestelltes Sternchen ist zu erkennen, welcher Branch gerade der aktive ist, zu dem etwas in die Staging-Area eingestellt werden kann.<br />
<br />
Es ist wichtig, dass man sich nicht vertut und den falschen Branch bearbeitet.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git checkout neuerbranch</code></div></div><br />
Damit wechselt (switcht) Git vom derzeitigen aktiven Branch zum neu ausgewählten Branch.<br />
<br />
In diesem Branch kann all das gemacht werden, was oben beschrieben ist. Allerdings ist zu beachten, dass dieser Branch isoliert ist, da er mit dem Master-Branch nicht in Verbindung steht.<br />
<br />
Man kann auch einen neuen Branch anlegen und diesen direkt als aktiven Branch kennzeichnen.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git checkout -b ganzneuerbranch</code></div></div><br />
Damit wird der Branch angelegt und direkt aktiviert.<br />
<br />
<span style="color: #005dc2;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Einen Branch löschen</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git branch -D neuerbranch</code></div></div><br />
Sollte es sein, dass ein Branch bzw. dessen Dateien, nicht mit dem Master-Branch zusammengeführt werden sollen, dann dieser Branch mit der Option "-D" gelöscht werden. Wichtig ist das **große D**.<br />
<br />
<hr class="mycode_hr" />
<br />
Das Zusammenführen von Branches ist wichtig, um die Arbeit anderer in den Master-Branch einzufügen.<br />
<br />
Das sollte natürlich nur geschehen, wenn der Code richtig ist.<br />
<br />
Um Branches in den Master-Branch bzw. den Branch, der die anderen Branches aufnehmen soll, einzufügen, muss der aufnehmende Branch aktiv sein.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git merge ganzneuerbranch</code></div></div><br />
Damit wird der Branch in den Master-Branch gemerged, da der Master-Branch der aktive Branch ist.<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #e82a1f;" class="mycode_color">Anmerkung:</span></span><br />
<br />
Der Begriff <span style="font-weight: bold;" class="mycode_b">Master</span> wurde mittlerweile auf Github mit dem Begriff <span style="font-weight: bold;" class="mycode_b">Main</span> ersetzt.]]></description>
			<content:encoded><![CDATA[Die Nutzung von Git und GitHub kann in Projekten von Vorteil sein. Hier dokumentiere ich, wie Git zu nutzen ist. Die Nutzung von GitHub ist sekundär, denn dieses benötige ich nur, sollte ich meine Projekte im Internet öffentlich machen wollen.<br />
<br />
Ich nutze zum Üben die Lehrgangsreihe von <a href="https://www.youtube.com/watch?v=3RjQznt-8kE&amp;list=PL4cUxeGkcC9goXbgTDQ0n_4TBzOO0ocPR" target="_blank" rel="noopener" class="mycode_url">The Net Ninja</a>.<br />
<br />
<br />
<hr class="mycode_hr" />
<br />
<br />
Meine eigenen Vorbemerkungen:<br />
<br />
Es macht im Grunde genommen Sinn, dass die Projekte, an denen gearbeitet wird, zentral auf dem lokalen Rechner abgelegt werden. Somit ist auch nur ein Oberprojektordner notwendig.  Dieser Oberprojektordner wird dann wiederum mit weiteren Ordnern je Einzelprojekt bestückt. Diese Ordner werden, sofern sie von Git zu nutzen sind, später durch die Initialisierung zu Repositories. Um nämlich Git in Gänze richtig zu nutzen, müssen Git-Repositories angelegt sein.<br />
<br />
Das bedeutet, dass in dem Projektordner ein versteckter Ordner <span style="font-weight: bold;" class="mycode_b">.git</span> angelegt wird, in dem dann alle Veränderungen nachgehalten, also getrackt, werden.<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="color: #005dc2;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Nachdem Git installiert wurde</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git config --globel user.name Tuennes</code></div></div><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git config --globel user.email tuennes@yahoo.de</code></div></div><br />
Damit ist Git personalisiert.<br />
<br />
Um festzustellen, welcher User für Git angelegt werde, ist folgender Befehl auf der Konsole abzusetzen.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git config user.name</code></div></div><br />
<span style="color: #005dc2;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Projekt initialisieren</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git init</code></div></div><br />
Mit diesem Befehl wird das Repository initiiert. Innerhalb des Ordner bzw. des Repositories können weitere Ordner erstellt werden. Auf der Konsole kann direkt mit dem Befehl ```touch``` eine leere Textdatei erzeugt werden, z.B. index.html.<br />
<br />
<span style="color: #005dc2;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Welche Dateien sind im Repo</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git status</code></div></div><br />
Dieser Befehl zeigt alle im Repo vorhandenen Dateien und deren aktuellen Status.<br />
<br />
Ein Status ist z.B. untracked. Das bedeutet, die Datei ist da, aber noch nicht in der Staging-Area enthalten.<br />
<br />
Dateien, die noch nicht in der Staging-Area sind, werden in der Farbe Rot dargestellt. Dateien, die bereits hinzugefügt wurden, werden in der Farbe Grün angezeigt.<br />
<br />
Die textliche Beschreibung ist aber auch ausreichend, um zu erkennen, welche Dateien hinzuzufügen sind. Das muss nicht einzeln geschehen.<br />
<br />
<span style="color: #005dc2;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Datei in Staging-Area hinzufügen</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git add index.html</code></div></div><br />
Um eine Datei in die Staging-Area hinzuzufügen, bedarf es nur dem vorgenannten Befehl.<br />
<br />
<span style="color: #005dc2;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Datei aus Staging-Area löschen</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git rm --cached index.html</code></div></div><br />
Sofern eine Datei im Repo nicht mehr benötigt wird, kann sie mit dem vorgenannten Befehl aus der Staging-Area herausgelöscht werden. Das bedeutet nicht, dass die Datei physisch gelöscht wurde. Sie ist nur nicht mehr im Repo.<br />
<br />
<span style="color: #005dc2;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Alle Dateien hinzufügen</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git add .</code></div></div><br />
In einem großen Projekt wäre es sehr aufwendig, wenn jede einzelne Datei, die erstellt wurde, dem Repo hinzuzufügen wäre. Mit dem vorgenannten Befehl werden alle neuen Dateien, die noch nicht im Repo sind, hinzugefügt.<br />
<br />
<br />
<hr class="mycode_hr" />
<br />
<br />
Wichtig ist, dass zu bestehenden Dateien, die geändert wurden, entsprechende Mitteilungen über den Grund der Änderung, vermerkt werden. Das ist das Kommittment, welches sehr wichtig ist.<br />
<br />
<span style="color: #005dc2;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Ein Kommitment absetzen</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git commit -m "added index and styles files"</code></div></div><br />
Dieser Befehl ist relativ global und bezieht sich nicht auf einzelne Dateien, sondern auf die Dateien, die neu sind bzw. geändert wurden.<br />
<br />
Die Option **-m** bedeutet, dass eine Mail erzeugt und an die Projektteilnehmer gesendet wird.<br />
<br />
Der notwendige und wichtige Kommentar zum Kommitment wird hinter der Option in Hochkommata gesetzt und sollte die Situation erklären.<br />
<br />
Mit diesem Kommitment wird eine eindeutige ID erzeugt, die im Repo abgespeichert wird.<br />
<br />
Es wird eine Info ausgegeben, die u.a. enthält, wieviele Zeilen insgesamt hinzugefügt (vielleicht auch gelöscht) wurden. Werden zum Projektbeginn mehrere Dateien mit einem Kommitment belegt, so sind alle vorhandenen Zeilen in Summe dann in der Info zu sehen.<br />
<br />
<span style="color: #005dc2;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Logfiles der Kommitments ansehen</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git log</code></div></div><br />
Sobald z.B. bestehende Dateien verändert werden, müssen diese irgendwann wieder der Staging-Area mitgeteilt werden. Das geht über den "add"-Befehl und es wird angezeigt, welche Dateien geändert (modifiziert) wurden.<br />
<br />
Sobald das passiert ist, sollte wieder ein Kommitment erfolgen, welches wieder geloggt wird.<br />
<br />
Mit dem obigen Befehl, können alle abgesetzten Kommitments betrachtet werden. Allerdings werden hierbei alle Einträge im Logfile, also in der Historie, angezeigt. Das kann sehr unübersichtlich sein, wenn das Projekt groß ist.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git log --oneline</code></div></div><br />
Um nicht erschlagen zu werden, wird bei der Ausführung des obigen Befehls je Kommitment nur eine Zeile ausgegeben, die eine Zusammenfassung der Veränderungen beinhaltet.<br />
<br />
<hr class="mycode_hr" />
<br />
Das einfache Hinzufügen und Betrachten der Dateien bzw. der Einträge in der Log-Datei ist nicht alles, denn es werden oftmals auch Fehler gemacht, die wieder zu beheben sind.<br />
<br />
Hier sind zum Kommitment 3 Befehle vorhanden:<br />
<ul class="mycode_list"><li>Checkout commit<br />
</li>
<li>Revert commit<br />
</li>
<li>Reset commit<br />
</li>
</ul>
<br />
<span style="color: #005dc2;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Ein Kommitment zurücknehmen</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git checkout af6b84c</code></div></div><br />
Sofern etwas falsch war oder zu verändern ist, kann ein Kommitment wieder zurückgenommen werden. Dazu ist über die Loghistorie die entsprechende ID zu erkunden und kann dann mit dem obigen Befehl wieder aus den Kommittments herausgenommen werden.<br />
<br />
Die Befehle für Revert und Reset kann ich aus der englischen Erklärung heraus nicht gut verstehen. Reset ist auf jeden Fall eine eher extreme Maßnahme. Beide Befehle benötigen immer die ID des Kommitments.<br />
<br />
<hr class="mycode_hr" />
<br />
Die Erstellung von Branches (Zweige oder Äste eine Baumes) ist die wohl wichtigste Eigenschaft von Git.<br />
<br />
Neben dem Master-Branch (Info: Master wurde zu Main auf GitHub umbenannt) können beliebig viele Branches angelegt werden.<br />
<br />
Branches sind notwendig, um neuen Code erst zu testen. Sollte er dem Projekt und den Anforderungen genügen, kann der Branch mit dem Master-Branch zusammengeführt (gemerged) werden.<br />
<br />
<span style="color: #005dc2;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Einen neuen Branch erstellen</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git branch neuerbranch</code></div></div><br />
Mit dem vorgenannten Befehl wurde ein Branch erstellt.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git branch -a</code></div></div><br />
Um feststellen zu können, welche Branches vorhanden sind, muss obiger Befehl abgesetzt werden.<br />
<br />
Wenn dieser Befehl abgesetzt wird, werden alle Branches gezeigt, auch der Master-Branch. Durch ein vorangestelltes Sternchen ist zu erkennen, welcher Branch gerade der aktive ist, zu dem etwas in die Staging-Area eingestellt werden kann.<br />
<br />
Es ist wichtig, dass man sich nicht vertut und den falschen Branch bearbeitet.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git checkout neuerbranch</code></div></div><br />
Damit wechselt (switcht) Git vom derzeitigen aktiven Branch zum neu ausgewählten Branch.<br />
<br />
In diesem Branch kann all das gemacht werden, was oben beschrieben ist. Allerdings ist zu beachten, dass dieser Branch isoliert ist, da er mit dem Master-Branch nicht in Verbindung steht.<br />
<br />
Man kann auch einen neuen Branch anlegen und diesen direkt als aktiven Branch kennzeichnen.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git checkout -b ganzneuerbranch</code></div></div><br />
Damit wird der Branch angelegt und direkt aktiviert.<br />
<br />
<span style="color: #005dc2;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Einen Branch löschen</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git branch -D neuerbranch</code></div></div><br />
Sollte es sein, dass ein Branch bzw. dessen Dateien, nicht mit dem Master-Branch zusammengeführt werden sollen, dann dieser Branch mit der Option "-D" gelöscht werden. Wichtig ist das **große D**.<br />
<br />
<hr class="mycode_hr" />
<br />
Das Zusammenführen von Branches ist wichtig, um die Arbeit anderer in den Master-Branch einzufügen.<br />
<br />
Das sollte natürlich nur geschehen, wenn der Code richtig ist.<br />
<br />
Um Branches in den Master-Branch bzw. den Branch, der die anderen Branches aufnehmen soll, einzufügen, muss der aufnehmende Branch aktiv sein.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git merge ganzneuerbranch</code></div></div><br />
Damit wird der Branch in den Master-Branch gemerged, da der Master-Branch der aktive Branch ist.<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #e82a1f;" class="mycode_color">Anmerkung:</span></span><br />
<br />
Der Begriff <span style="font-weight: bold;" class="mycode_b">Master</span> wurde mittlerweile auf Github mit dem Begriff <span style="font-weight: bold;" class="mycode_b">Main</span> ersetzt.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Git Submodul clonen]]></title>
			<link>https://forum.hermann-splitthoff.de/showthread.php?tid=51</link>
			<pubDate>Sat, 07 Jan 2023 13:03:49 +0100</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.hermann-splitthoff.de/member.php?action=profile&uid=1">Joopi</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.hermann-splitthoff.de/showthread.php?tid=51</guid>
			<description><![CDATA[Heute wollte ich das Submodule eines Hugothemes in eine neue Hugoseite (Testzentrum) hinzufügen. Also flott den Befehl kopiert und nicht schlecht gestaunt:<br />
<br />
<blockquote class="mycode_quote"><cite>Zitat:</cite>fatal: Kein Git-Repository (oder irgendein Elternverzeichnis bis zum Einhängepunkt /media/django)<br />
Stoppe bei Dateisystemgrenze (GIT_DISCOVERY_ACROSS_FILESYSTEM nicht gesetzt).</blockquote>
<br />
Es hat dann tatsächlich drei, vier Sekunden gedauert bis mir klar geworden war, dass ich noch kein Git-Repository für die neue Hugotestseite erstellt hatte.<br />
<br />
Mit<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git init<br />
git add .<br />
git commit -m "blablabla"</code></div></div><br />
wurde das Repository erstellt und schon funktionierte der Befehl im root-Verzeichnis der Hugoseite, um ein Submodule hinzuzufügen:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git submodule add https://github.com/hugo-toha/toha.git themes/toha<br />
git submodule init<br />
git submodule update</code></div></div><br />
Dann ist mir eingefallen, dass bei der Nutzung von Submodulen, direkt Updates vom Theme heruntergeladen werden können:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git submodule update --remote themes/toha</code></div></div><br />
Es muss aber einen Grund geben, warum der Themeautor die Info herausgegeben hat, dass das Theme als Submodule zu installieren ist und der normale Clone-Befehl das Theme nicht gut unterstützt.<br />
<br />
Wichtig ist für mich zu wissen, und ich sollte es auch behalten, dass bei der Nutzung von Submodulen ein Git-Repository vonnöten ist. :-)]]></description>
			<content:encoded><![CDATA[Heute wollte ich das Submodule eines Hugothemes in eine neue Hugoseite (Testzentrum) hinzufügen. Also flott den Befehl kopiert und nicht schlecht gestaunt:<br />
<br />
<blockquote class="mycode_quote"><cite>Zitat:</cite>fatal: Kein Git-Repository (oder irgendein Elternverzeichnis bis zum Einhängepunkt /media/django)<br />
Stoppe bei Dateisystemgrenze (GIT_DISCOVERY_ACROSS_FILESYSTEM nicht gesetzt).</blockquote>
<br />
Es hat dann tatsächlich drei, vier Sekunden gedauert bis mir klar geworden war, dass ich noch kein Git-Repository für die neue Hugotestseite erstellt hatte.<br />
<br />
Mit<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git init<br />
git add .<br />
git commit -m "blablabla"</code></div></div><br />
wurde das Repository erstellt und schon funktionierte der Befehl im root-Verzeichnis der Hugoseite, um ein Submodule hinzuzufügen:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git submodule add https://github.com/hugo-toha/toha.git themes/toha<br />
git submodule init<br />
git submodule update</code></div></div><br />
Dann ist mir eingefallen, dass bei der Nutzung von Submodulen, direkt Updates vom Theme heruntergeladen werden können:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git submodule update --remote themes/toha</code></div></div><br />
Es muss aber einen Grund geben, warum der Themeautor die Info herausgegeben hat, dass das Theme als Submodule zu installieren ist und der normale Clone-Befehl das Theme nicht gut unterstützt.<br />
<br />
Wichtig ist für mich zu wissen, und ich sollte es auch behalten, dass bei der Nutzung von Submodulen ein Git-Repository vonnöten ist. :-)]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[submodul Repository]]></title>
			<link>https://forum.hermann-splitthoff.de/showthread.php?tid=50</link>
			<pubDate>Sat, 07 Jan 2023 13:00:48 +0100</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.hermann-splitthoff.de/member.php?action=profile&uid=1">Joopi</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.hermann-splitthoff.de/showthread.php?tid=50</guid>
			<description><![CDATA[Über Git in Verbindung mit GitHub lassen sich Dateien, gepackte Ordner und auch Submodule für Hugo und alles andere downloaden.<br />
<br />
Am besten wechselt man direkt in den Ordner der Hugo-Seite und setzt dann den entsprechenden Befehl ab.<br />
<br />
Die Syntax für den Download eines Submoduls ist wie folgt:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git init<br />
git submodule add https://github.com/budparr/gohugo-theme-ananke.git ./themes/ananke</code></div></div><br />
Danach ist das Theme in Hugo bzw. in der Datei config.toml einzubinden:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>echo ‘theme = “ananke”’ &gt;&gt; config.toml</code></div></div>]]></description>
			<content:encoded><![CDATA[Über Git in Verbindung mit GitHub lassen sich Dateien, gepackte Ordner und auch Submodule für Hugo und alles andere downloaden.<br />
<br />
Am besten wechselt man direkt in den Ordner der Hugo-Seite und setzt dann den entsprechenden Befehl ab.<br />
<br />
Die Syntax für den Download eines Submoduls ist wie folgt:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git init<br />
git submodule add https://github.com/budparr/gohugo-theme-ananke.git ./themes/ananke</code></div></div><br />
Danach ist das Theme in Hugo bzw. in der Datei config.toml einzubinden:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>echo ‘theme = “ananke”’ &gt;&gt; config.toml</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[clone Repository]]></title>
			<link>https://forum.hermann-splitthoff.de/showthread.php?tid=49</link>
			<pubDate>Sat, 07 Jan 2023 12:59:16 +0100</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.hermann-splitthoff.de/member.php?action=profile&uid=1">Joopi</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.hermann-splitthoff.de/showthread.php?tid=49</guid>
			<description><![CDATA[Die wohl einfachst Art, ein GitHub-Repository auf dem lokalen Rechner zu installieren, geht über den Clonebefehl.<br />
<br />
Bezogen auf ein zu clonendes Theme für Hugo könnte man wie folgt vorgehen, indem man sich im Ordner der Hugoseite befindet und dann folgenden Befehl absetzt:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git clone URL-des-Repositorys ./themes/Themename</code></div></div><br />
Es ist in diesem Falle notwendig, dass der versteckte Ordner <span style="font-weight: bold;" class="mycode_b">.git</span>, der versteckt ist, gelöscht wird.<br />
<br />
<br />
Ansonsten, sollte der Clone mit Git organisiert werden, muss der versteckte Ordner natürlich bestehen bleiben.]]></description>
			<content:encoded><![CDATA[Die wohl einfachst Art, ein GitHub-Repository auf dem lokalen Rechner zu installieren, geht über den Clonebefehl.<br />
<br />
Bezogen auf ein zu clonendes Theme für Hugo könnte man wie folgt vorgehen, indem man sich im Ordner der Hugoseite befindet und dann folgenden Befehl absetzt:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>git clone URL-des-Repositorys ./themes/Themename</code></div></div><br />
Es ist in diesem Falle notwendig, dass der versteckte Ordner <span style="font-weight: bold;" class="mycode_b">.git</span>, der versteckt ist, gelöscht wird.<br />
<br />
<br />
Ansonsten, sollte der Clone mit Git organisiert werden, muss der versteckte Ordner natürlich bestehen bleiben.]]></content:encoded>
		</item>
	</channel>
</rss>