<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Amend on besserentwickeln.de</title><link>https://besserentwickeln.de/tags/amend/</link><description>Recent content in Amend on besserentwickeln.de</description><generator>Hugo -- gohugo.io</generator><language>de</language><copyright>Philipp Tuchardt</copyright><lastBuildDate>Tue, 15 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://besserentwickeln.de/tags/amend/index.xml" rel="self" type="application/rss+xml"/><item><title>Datei aus dem letzten Commit entfernen, Inhalt aber behalten</title><link>https://besserentwickeln.de/p/datei-aus-dem-letzten-commit-entfernen-inhalt-aber-behalten/</link><pubDate>Tue, 15 Sep 2026 00:00:00 +0000</pubDate><guid>https://besserentwickeln.de/p/datei-aus-dem-letzten-commit-entfernen-inhalt-aber-behalten/</guid><description>&lt;p>Man committet und merkt danach, dass eine Datei im Commit gelandet ist, die dort nichts zu suchen hat.
Die Änderung selbst will man aber behalten.&lt;/p>
&lt;h2 id="how-to">How To
&lt;/h2>&lt;p>Die Datei aus dem Commit-Inhalt lösen, ihren aktuellen Inhalt aber behalten:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">git restore --source&lt;span class="o">=&lt;/span>HEAD~1 --staged myFile.php
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">git commit --amend --no-edit
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>&lt;code>git restore --source=HEAD~1 --staged&lt;/code> setzt die Datei im Index auf den Stand vor dem Commit
zurück. Das Arbeitsverzeichnis bleibt dabei unangetastet. Der Inhalt der Datei geht also nicht
verloren. Das anschließende &lt;code>git commit --amend --no-edit&lt;/code> schreibt den Commit ohne die Datei neu,
die Commit-Message bleibt unverändert.&lt;/p>
&lt;h2 id="ergebnis">Ergebnis
&lt;/h2>&lt;p>Der bisherige Commit wird durch einen neuen Commit ohne die README ersetzt. Die Datei
taucht danach wieder als unstaged Änderung in &lt;code>git status&lt;/code> auf.&lt;/p>
&lt;p>Wichtig: &lt;code>--amend&lt;/code> erzeugt einen neuen Commit-Hash. Wenn der alte Commit bereits gepusht wurde,
braucht es einen Force-Push.&lt;/p>
&lt;h2 id="verifikation">Verifikation
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">git show --stat HEAD
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">git status -s
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>&lt;code>git show --stat HEAD&lt;/code> zeigt, welche Dateien tatsächlich im Commit stecken — die entfernte Datei
darf hier nicht mehr auftauchen. &lt;code>git status -s&lt;/code> zeigt sie dagegen wieder als Änderung im
Arbeitsverzeichnis.&lt;/p></description></item></channel></rss>