Skip to main content
+ option with a Makefile
Source Link
Edgar Bonet
  • 44.3k
  • 4
  • 41
  • 79

You could commit the following file into your project, named credentials.h:

// Replace with your actual SSID and password:

#define WIFI_SSID "Your SSID here"
#define WIFI_PASSWD "WLAN AP password here"

Near the beginning of your sketch, you add:

#include "credentials.h"

const char ssid[] = WIFI_SSID;
const char password[] = WIFI_PASSWD;

Now, you can edit credentials.h to add your real SSID and password, and go on with your normal git workflow, with one exception: never git add credentials.h again, nor git commit -a.

Now, git will always remind you that credentials.h has been modified and is not staged for commit. It will do so even if you add the file to your .gitignore. If you always review your changes before committing, this is only a minor inconvenience. If, on the other hand, you tend to git commit -a without reviewing what you are committing, then this solution is likely not for you.


Edit: An idea I got from reading Chris Stratton's comments. If you use a Makefile in your own workflow (this has already been discussed in this site a few times), you could commit this credentials.h to your repo:

#ifndef CREDENTIALS_H
#define CREDENTIALS_H

// Replace with your actual SSID and password:
#define WIFI_SSID "Your SSID here"
#define WIFI_PASSWD "WLAN AP password here"

#endif

Make a copy of this file named true-credentials.h and put the real credentials there (but do not rename the include guard). Then add to your Makefile

CFLAGS += -include true-credentials.h

Keep true-credentials.h and the Makefile out of the repo. You can add them to your .gitignore or, better yet, to .git/info/exclude.

Now you have a compilable version with dummy credentials in the repository, you have the true credentials when you compile on your own machine, and git does not bother you about credentials.h being changed.

You could commit the following file into your project, named credentials.h:

// Replace with your actual SSID and password:

#define WIFI_SSID "Your SSID here"
#define WIFI_PASSWD "WLAN AP password here"

Near the beginning of your sketch, you add:

#include "credentials.h"

const char ssid[] = WIFI_SSID;
const char password[] = WIFI_PASSWD;

Now, you can edit credentials.h to add your real SSID and password, and go on with your normal git workflow, with one exception: never git add credentials.h again, nor git commit -a.

Now, git will always remind you that credentials.h has been modified and is not staged for commit. It will do so even if you add the file to your .gitignore. If you always review your changes before committing, this is only a minor inconvenience. If, on the other hand, you tend to git commit -a without reviewing what you are committing, then this solution is likely not for you.

You could commit the following file into your project, named credentials.h:

// Replace with your actual SSID and password:

#define WIFI_SSID "Your SSID here"
#define WIFI_PASSWD "WLAN AP password here"

Near the beginning of your sketch, you add:

#include "credentials.h"

const char ssid[] = WIFI_SSID;
const char password[] = WIFI_PASSWD;

Now, you can edit credentials.h to add your real SSID and password, and go on with your normal git workflow, with one exception: never git add credentials.h again, nor git commit -a.

Now, git will always remind you that credentials.h has been modified and is not staged for commit. It will do so even if you add the file to your .gitignore. If you always review your changes before committing, this is only a minor inconvenience. If, on the other hand, you tend to git commit -a without reviewing what you are committing, then this solution is likely not for you.


Edit: An idea I got from reading Chris Stratton's comments. If you use a Makefile in your own workflow (this has already been discussed in this site a few times), you could commit this credentials.h to your repo:

#ifndef CREDENTIALS_H
#define CREDENTIALS_H

// Replace with your actual SSID and password:
#define WIFI_SSID "Your SSID here"
#define WIFI_PASSWD "WLAN AP password here"

#endif

Make a copy of this file named true-credentials.h and put the real credentials there (but do not rename the include guard). Then add to your Makefile

CFLAGS += -include true-credentials.h

Keep true-credentials.h and the Makefile out of the repo. You can add them to your .gitignore or, better yet, to .git/info/exclude.

Now you have a compilable version with dummy credentials in the repository, you have the true credentials when you compile on your own machine, and git does not bother you about credentials.h being changed.

Source Link
Edgar Bonet
  • 44.3k
  • 4
  • 41
  • 79

You could commit the following file into your project, named credentials.h:

// Replace with your actual SSID and password:

#define WIFI_SSID "Your SSID here"
#define WIFI_PASSWD "WLAN AP password here"

Near the beginning of your sketch, you add:

#include "credentials.h"

const char ssid[] = WIFI_SSID;
const char password[] = WIFI_PASSWD;

Now, you can edit credentials.h to add your real SSID and password, and go on with your normal git workflow, with one exception: never git add credentials.h again, nor git commit -a.

Now, git will always remind you that credentials.h has been modified and is not staged for commit. It will do so even if you add the file to your .gitignore. If you always review your changes before committing, this is only a minor inconvenience. If, on the other hand, you tend to git commit -a without reviewing what you are committing, then this solution is likely not for you.