<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>bash &#8211; webmatze.de</title>
	<atom:link href="https://webmatze.de/tag/bash/feed/" rel="self" type="application/rss+xml" />
	<link>https://webmatze.de</link>
	<description>Profi Tipps für einen erfolgreichen Internetauftritt</description>
	<lastBuildDate>Fri, 10 Nov 2023 10:03:25 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>
	<item>
		<title>Integration eines externen Git Repos in ein Unterverzeichnis mit Erhalt der vollständigen Historie</title>
		<link>https://webmatze.de/merge-external-gem-into-subdirectory-with-full-history/</link>
					<comments>https://webmatze.de/merge-external-gem-into-subdirectory-with-full-history/#respond</comments>
		
		<dc:creator><![CDATA[Mathias Karstädt]]></dc:creator>
		<pubDate>Fri, 10 Nov 2023 10:02:09 +0000</pubDate>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[git]]></category>
		<guid isPermaLink="false">https://webmatze.de/?p=1017</guid>

					<description><![CDATA[Wie man ein externes Git Repository in ein Unterverzeichnis eines anderen Repositories merged und dabei die komplette Historie behält.]]></description>
										<content:encoded><![CDATA[<p>Hallo liebe Entwickler-Community!</p>
<p>Heute möchte ich euch eine spannende Sache vorstellen: Wie man ein externes Git Repository in ein Unterverzeichnis eines anderen Repositories merged und dabei die komplette Historie behält. Klingt kompliziert? Keine Sorge, ich zeige euch Schritt für Schritt, wie das geht.</p>
<h3>Schritt 1: Vorbereitung des Ziel-Repositories</h3>
<p>Zuerst müsst ihr euch in den <code>master</code> Branch des Ziel-Repositories begeben:</p>
<pre><code class="language-bash">git checkout master</code></pre>
<p>Dann erstellt ihr einen neuen, leeren Branch. Wir nennen ihn <code>gem-merge</code>:</p>
<pre><code class="language-bash">git checkout --orphan gem-merge</code></pre>
<p><span id="more-1017"></span></p>
<h3>Schritt 2: Bereinigen des neuen Branches</h3>
<p>Im neuen Branch müsst ihr zunächst alle Dateien löschen:</p>
<pre><code class="language-bash">git rm -rf .</code></pre>
<h3>Schritt 3: Hinzufügen des Externen Gems</h3>
<p>Jetzt wird’s spannend. Ihr fügt das externe Gem als neues Remote-Repo hinzu:</p>
<pre><code class="language-bash">git remote add other-gem git@gitlab.com:gems/other-gem.git</code></pre>
<p>Danach merged ihr den <code>master</code> des externen Gems in euren leeren Branch:</p>
<pre><code class="language-bash">git merge other-gem/master</code></pre>
<h3>Schritt 4: Verschieben ins Unterverzeichnis</h3>
<p>Nun verschiebt ihr alle Dateien in das gewünschte Unterverzeichnis. In unserem Beispiel ist es <code>gems/other-gem/</code>:</p>
<pre><code class="language-bash">git mv -k * gems/other-gem/</code></pre>
<p>Anschließend commitet ihr die Änderungen:</p>
<pre><code class="language-bash">git commit -m &amp;quot;Merge other-gem into subdirectory&amp;quot;</code></pre>
<h3>Schritt 5: Rebasing und Mergen</h3>
<p>Jetzt wechselt ihr zurück zum <code>master</code> und erstellt einen neuen Branch für den Merge:</p>
<pre><code class="language-bash">git switch master
git switch -c merge-other-gem</code></pre>
<p>Im letzten Schritt merged ihr die Änderungen mit der Option, nicht verwandte Historien zu erlauben:</p>
<pre><code class="language-bash">git merge --no-ff gem-merge --allow-unrelated-histories</code></pre>
<h3>Fertig!</h3>
<p>Jetzt könnt ihr euren neuen Merge-Request pushen:</p>
<pre><code class="language-bash">git push</code></pre>
<p>Und voilà! Ihr habt erfolgreich ein externes Gem in euer Repository integriert, ohne dessen Historie zu verlieren. Einfach, oder?</p>
<p>Ich hoffe, dieser Beitrag war hilfreich für euch. Lasst mich wissen, falls ihr Fragen habt oder weitere Tipps braucht. Happy coding! ?</p>
]]></content:encoded>
					
					<wfw:commentRss>https://webmatze.de/merge-external-gem-into-subdirectory-with-full-history/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
