Git - Codezeile mit API Key in jeder Datei aus vorherigen commits ändern. – SELFHTML-Forum Forum als Ergänzung zum SELFHTML-Wiki und zur Dokumentation SELFHTML https://forum.selfhtml.org/self?srt=yes Git - Codezeile mit API Key in jeder Datei aus vorherigen commits ändern. Mon, 15 Nov 21 20:00:26 Z https://forum.selfhtml.org/self/2021/nov/15/git-codezeile-mit-api-key-in-jeder-datei-aus-vorherigen-commits-andern/1793649?srt=yes#m1793649 https://forum.selfhtml.org/self/2021/nov/15/git-codezeile-mit-api-key-in-jeder-datei-aus-vorherigen-commits-andern/1793649?srt=yes#m1793649 <p>Hallo,</p> <p>ich möchte auf github.com ein Repository erstellen und Dateien hochladen. Zuvor arbeite ich aber lokal am Code und verwende zum testen einen API Key. Dieser soll später aber nicht mehr in den öffentlichen Dateien und Dateien der Commit Historie zu finden sein.</p> <p><strong>Wie geht man am besten vor?</strong></p> <ol> <li> <p>Ist es möglich mit Git eine Codezeile in jeder Datei, auch aus vorherigen commits zu ändern?</p> </li> <li> <p>Gibt es evtl. ein Zeichen, welches man vor eine Codezeile setzt und so nicht committed wird. Ähnlich wie Dateien, die man in der .gitignore Datei einträgt?</p> </li> </ol> <p>Gruß ebody</p> Git - Codezeile mit API Key in jeder Datei aus vorherigen commits ändern. Mon, 15 Nov 21 20:43:32 Z https://forum.selfhtml.org/self/2021/nov/15/git-codezeile-mit-api-key-in-jeder-datei-aus-vorherigen-commits-andern/1793652?srt=yes#m1793652 https://forum.selfhtml.org/self/2021/nov/15/git-codezeile-mit-api-key-in-jeder-datei-aus-vorherigen-commits-andern/1793652?srt=yes#m1793652 <p>Hallo ebody,</p> <p>wegen der historischen Commits: Wieviel Wert legst Du auf deine History? Kannst Du nicht einfach den aktuellen Stand nach github übertragen, und die History abschneiden?</p> <p>Den API Key solltest Du keinesfalls irgendwo einchecken. Der gehört in eine Config-Datei, von der es im Git lediglich eine Musterversion gibt. Beim Deploy muss die echte Config-Datei hinzugefügt werden.</p> <p>Für echte Orwellsche Verhältnisse (rewrite the history) ist, soweit ich das verstehe, der rebase-Befehl dein Freund. Aber ich weiß nicht, wie man das richtig macht.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - obstruxi </div> Git - Codezeile mit API Key in jeder Datei aus vorherigen commits ändern. Mon, 15 Nov 21 20:43:59 Z https://forum.selfhtml.org/self/2021/nov/15/git-codezeile-mit-api-key-in-jeder-datei-aus-vorherigen-commits-andern/1793653?srt=yes#m1793653 https://forum.selfhtml.org/self/2021/nov/15/git-codezeile-mit-api-key-in-jeder-datei-aus-vorherigen-commits-andern/1793653?srt=yes#m1793653 <p>Hi,</p> <blockquote> <p>ich möchte auf github.com ein Repository erstellen und Dateien hochladen. Zuvor arbeite ich aber lokal am Code und verwende zum testen einen API Key. Dieser soll später aber nicht mehr in den öffentlichen Dateien und Dateien der Commit Historie zu finden sein.</p> <p><strong>Wie geht man am besten vor?</strong></p> <ol> <li>Ist es möglich mit Git eine Codezeile in jeder Datei, auch aus vorherigen commits zu ändern?</li> </ol> </blockquote> <p>Das klingt nach einem Pre-Commit-Hook. Ich weiß zwar, daß es das gibt, hab aber noch nie selber einen eingesetzt. Details müßtest Du also selber erduckducken.</p> <p>cu,<br> Andreas a/k/a MudGuard</p> Git - Codezeile mit API Key in jeder Datei aus vorherigen commits ändern. Mon, 15 Nov 21 21:23:00 Z https://forum.selfhtml.org/self/2021/nov/15/git-codezeile-mit-api-key-in-jeder-datei-aus-vorherigen-commits-andern/1793654?srt=yes#m1793654 https://forum.selfhtml.org/self/2021/nov/15/git-codezeile-mit-api-key-in-jeder-datei-aus-vorherigen-commits-andern/1793654?srt=yes#m1793654 <p>Moin,</p> <blockquote> <p>ich möchte auf github.com ein Repository erstellen und Dateien hochladen. Zuvor arbeite ich aber lokal am Code und verwende zum testen einen API Key. Dieser soll später aber nicht mehr in den öffentlichen Dateien und Dateien der Commit Historie zu finden sein.</p> <p><strong>Wie geht man am besten vor?</strong></p> </blockquote> <ul> <li>Lege im Repository eine Datei <code>api.key.example</code> an, die du als Dummy eincheckst und dokumentierst, dass diese Datei mit dem echten API-Key zu befüllen und in <code>api.key</code> umzubenennen ist.</li> <li>Lade in deinem Code deine <code>api.key</code>.</li> <li>Schreibe die <code>api.key</code> in die <code>.gitignore</code>.</li> <li><code>git add api.key.example .gitignore; git commit</code></li> </ul> <p>Viele Grüße<br> Robert</p> Git - Codezeile mit API Key in jeder Datei aus vorherigen commits ändern. Thu, 18 Nov 21 10:58:30 Z https://forum.selfhtml.org/self/2021/nov/15/git-codezeile-mit-api-key-in-jeder-datei-aus-vorherigen-commits-andern/1793758?srt=yes#m1793758 https://forum.selfhtml.org/self/2021/nov/15/git-codezeile-mit-api-key-in-jeder-datei-aus-vorherigen-commits-andern/1793758?srt=yes#m1793758 <p>Hallo,</p> <blockquote> <ol> <li>Ist es möglich mit Git eine Codezeile in jeder Datei, auch aus vorherigen commits zu ändern?</li> </ol> </blockquote> <p>Hierfür habe ich eine Möglichkeit gefunden und konnte in einem sehr übersichtlichen Test Projekt den Code in vergangenen Commits ändern. Wenn ein Repository aber schon mit anderen geteilt wurde, sollte man vorab gut abwägen, ob das sinnvoll ist oder wenn man Verzeichnisse und Dateien hatte, deren Name geändert, die gelöscht, verschoben wurden, kann das bestimmt ganz schön mühselig werden.</p> <p>Man kann das mit rebase und commit --amend umsetzen.</p> <p><strong>Hier eine grobe Übersicht und ein Beispiel:</strong></p> <p>In dem markierten Commit habe ich in der index.html einen API Key eingetragen: <code><p>My Api Key: 123456</p></code> Die index.html ist in den darauf folgenden Commits mit dem API Key ebenfalls vorhanden und möchte in jedem Commit den API Key im Code ändern in: <code><p>My Api Key: strApiKey</p></code></p> <p><a href="/images/2a9b4b30-485b-11ec-9b23-b42e9947ef30.jpg" rel="noopener noreferrer"><img src="/images/2a9b4b30-485b-11ec-9b23-b42e9947ef30.jpg?size=medium" alt="Git Commits" title="Git Commits" loading="lazy"></a></p> <ol> <li><code>git rebase -i f831c62</code></li> <li>Fenster öffnet sich, wo Commits aufgelistet werden. Befehl für gewünschten Commit wählen: <code>edit ... 9013402</code></li> <li>Änderung in der index.html vornehmen: <code><p>My Api Key: strApiKey</p></code></li> <li><code>git add .</code></li> <li><code>git commit --amend</code></li> <li>Fenster öffnet sich, Commit bestätigen indem man es einfach schließt.</li> <li><code>git rebase --continue</code></li> <li>Man befindet sich jetzt im nächsten Commit <code>4b31c1a</code> und muss Konflikte lösen. In der betroffenen Datei (index.html) "Accept Both Changes" wählen und den Code anpassen.</li> <li><code>git add .</code></li> <li><code>git rebase --continue</code></li> <li>Man befindet sich jetzt im nächsten (und letzten) Commit <code>ef70ecc</code> und muss Konflikte lösen. In der betroffenen Datei (index.html) "Accept Both Changes" wählen und den Code anpassen.</li> <li><code>git add .</code></li> <li><code>git rebase --continue</code></li> </ol> <p><strong>Fertig. Die Commit ID´s haben sich danach geändert und der Code in jeder index.html ist jetzt <code><p>My Api Key: strApiKey</p></code>.</strong></p> <p>In diesem Kurs <a href="https://codewithmosh.com/p/the-ultimate-git-course" rel="nofollow noopener noreferrer">https://codewithmosh.com/p/the-ultimate-git-course</a>, den ich übrigens sehr empfehlen kann, wird das alles sehr gut erklärt und gezeigt im Video im Kurs Teil "9- Amending an Earlier Commit".</p> <blockquote> <p>Zu 2. Gibt es evtl. ein Zeichen, welches man vor eine Codezeile setzt und so nicht committed wird. Ähnlich wie Dateien, die man in der .gitignore Datei einträgt?</p> </blockquote> <p>Sensible Daten lager ich jetzt immer aus und binde sie ein. Ich habe eine hide.js erstellt, zuvor in der .gitignore eingetragen, in der hide.js <code>var strApiKey = '123456';</code> Die hide.js binde ich in die jeweilige Datei ein, wo ich sie brauche und kann dort strApiKey verwenden, wenn ich den API Key benötige.</p> <p>Gruß ebody</p>