A Raspberry Pi is a super cheap, small, power-effective computer, excellently re purposed as a Git server. Start by installing some dependencies - chances are, if you're running Raspbian, you may already have these.
sudo apt-get install wget git-coreIt is good practice to set up a dedicated system user, in this case we are calling the user
git with a home folder location at /home/gitsudo adduser --system --shell /bin/bash -gecos 'Raspberry Pi Git user' --group --home /home/git gitEnter the user's home folder, and initialize a new bare git repository:
su git
cd /home/git
mkdir newrepo.git
cd newrepo.git
git --bare initAnd your Pi is now set up with a shiny new repository, ready to accept some files!
Return to your host machine, and go to the root of the new project that is about to get pushed to the new repository. At this point, it is a good idea to check your
.gitignore file to make sure you aren't about to push stuff that shouldn't be version-controlled. Replace the IP address below as needed; or better yet, hostname if that is set up (mine is just running on my local network). We will now tell our host machine where to push to, then will commit the project, and actually push it:git init
git remote add origin git@192.168.0.xx:/home/git/newrepo.git
git add .
git commit -m "First commit"
git push origin masterIf, like me, you already had a git work tree set up, but the old repository is now defunct, you can instead just change the repo location like this:
git remote set-url origin git@192.168.0.xx:/home/git/newrepo.git
git push origin masterThis will retain your entire git history, even though you may previously have been pushing to a different repository. If you had the entire history checked out locally before your switchover, that history will be uploaded to the new location as well.
Finally, as a last quality-of-life tweak, upload your public SSH key to your remote user's
~/.ssh/authorized_keys file. This stops the annoying password prompts during every push, but is just as secure.Lastly, back on the host machine, it might be worth setting Git's case-sensitivity off via
git config core.ignorecase false.
No comments :
Post a Comment