Ich habe begonnen, GitHub zum Speichern von Arduino-Code zu verwenden. Ein Teil meines Codes verwendet jedoch die SSID und das Passwort für mein WLAN, die ich nicht veröffentlichen möchte.
Eine übliche Methode, dies in der nicht eingebetteten Programmierung zu handhaben, ist die Verwendung einer Konfigurationsdatei. Dies scheint jedoch kein praktikabler Ansatz für die Programmierung des Arduino zu sein. Ich kommentiere derzeit nur die vertraulichen Informationen aus, bevor ich sie an GitHub weitergebe, aber eines Tages werde ich sie sicher vergessen.
Gibt es eine andere - bessere - Möglichkeit, damit umzugehen?
quelle
Sie können die folgende Datei mit dem Namen credentials.h in Ihr Projekt übernehmen:
Am Anfang Ihrer Skizze fügen Sie hinzu:
Jetzt können Sie credentials.h bearbeiten, um Ihre echte SSID und Ihr Kennwort hinzuzufügen, und mit Ihrem normalen Git-Workflow fortfahren, mit einer Ausnahme: nie
git add credentials.h
wieder, nochgit commit -a
.Jetzt wird git Sie immer daran erinnern, dass credentials.h geändert wurde und nicht für das Festschreiben bereitgestellt wird. Dies ist auch dann der Fall, wenn Sie die Datei zu Ihrem .gitignore hinzufügen. Wenn Sie Ihre Änderungen immer überprüfen, bevor Sie sie festschreiben, ist dies nur eine geringfügige Unannehmlichkeit. Wenn Sie andererseits dazu neigen,
git commit -a
ohne zu überprüfen, was Sie begehen, ist diese Lösung wahrscheinlich nicht für Sie.Bearbeiten : Eine Idee, die ich durch das Lesen von Chris Strattons Kommentaren bekam. Wenn Sie ein Makefile in Ihrem eigenen Workflow verwenden (dies wurde auf dieser Site bereits einige Male erläutert), können Sie diese Anmeldeinformationen in Ihr Repo übertragen:
Erstellen Sie eine Kopie dieser Datei mit dem Namen true-credentials.h und legen Sie die tatsächlichen Anmeldeinformationen dort ab (benennen Sie den Include Guard jedoch nicht um). Dann füge es deinem Makefile hinzu
Halten Sie true-credentials.h und das Makefile aus dem Repo heraus. Sie können sie zu Ihrem .gitignore oder, noch besser, zu .git / info / exclude hinzufügen.
Jetzt haben Sie eine kompilierbare Version mit Dummy-Anmeldeinformationen im Repository. Sie haben die wahren Anmeldeinformationen, wenn Sie auf Ihrem eigenen Computer kompilieren, und Git stört Sie nicht daran, dass Anmeldeinformationen geändert werden.
quelle
credentials.h.CUSTOMIZE_ME
oder so, und sie möglicherweise mit einer#ifndef
#error
Anweisung zum Erstellen einer Kopie ohne Suffix und Bearbeiten sichern.#include
ohne die benutzerdefinierte Nachricht fehlschlagen wird. Zeigt wirklich die Primitivität der Arduino IDE im Vergleich zu etwas, das eine sinnvolle Projektdatei oder ein benutzerdefiniertes Makefile zulässt.Aufbauend auf den Schultern der Riesen nahm ich Edger Bonets Antwort und benutzte eine etwas andere Wendung. Ich bin diesen Weg gegangen, weil ich kein Makefile verwende und festgestellt habe, dass diese Lösung für mich in meinem Projekt gut funktioniert.
Ich habe eine Platzhalter-Datei credentials.h mit den folgenden Informationen erstellt (Antwort von Edger).
Ich habe den Verweis auf diese neue Datei in der .ino-Datei hinzugefügt.
Jetzt die Wendung. Ich habe ausgeschlossen, dass die Datei mit dem Befehl --assume-unverändert auf Änderungen überprüft wird.
Sie können dann die Datei credentials.h ändern und werden nicht aufgefordert, sie zu github hinzuzufügen.
Beachten Sie, dass Sie zum erneuten Überprüfen der Datei --no-accept-unverändert verwenden.
quelle
--assumed-unchanged
Tipp!