Prepare Git repo for public release
Eliminating unnecessary (particularly large) files and removing needless historical development details are two significant parts of preparing a Git repo for public release. The general public users, even if of a limited group don’t need large amounts of code development history, probably littered with large files. Here are several straightforward steps to prepare code for public Git release.
1. Create an empty Git repo
GitHub is an obvious first choice, as GitHub has by far the largest number of users and excellent integration with third party tools. Bitbucket and GitLab are two worthy alternatives.
Create an empty Git repo at the website, then clone the empty repo you created to the computer.
git clone https://github.invalid/username/myrepoCopy the files you want into the myrepo directory–we’ll clean up extra files next
2. Remove unneeded files
These commands are executed in the new myrepo directory you cloned, NOT your old directory.
These commands assume a Unix-like shell.
Find the biggest directories in myrepo directory:
du -h | sort -hTo inspect biggest files within ~/mydir:
ls -h mydir | sort -hFind binary files (non-text, non-code) recursively:
find . -type f | perl -lne 'print if -B'Find and eliminate .DS_Store files (from macOS):
find . -name .DS_Storeand then add .DS_Store to .gitignore
Sometimes it’s handy to remove or list all files EXCEPT those matching a pattern (inverse globbing):
shopt -s extglob
ls !(*inverse_pattern*)Keep unwanted files out of the Git repo in the future by adding filename, directory names, and globbing patterns to .gitignore
3. Share and collaborate
When you’re confident things are ready, do
git add .
git commit -am "initial public release"
git pushand your files are on the Web for all.
Users will use GitHub Issues and Pull Requests to request and suggest code changes.
Instead of adding Collaborators, start by having people who want to make changes Fork and then Pull Request.
4. Ensure quality
Continuous Integration is vital to maintaining and improving code quality. GitHub Actions CI is a popular choice.