git-popper is a lightweight yet powerful command-line tool for managing a secondary repository alongside your main repository. It helps synchronize specific files and directories, ensuring that critical or sensitive data is stored securely while maintaining seamless workflow integration.
- Side Repository Integration - Connect a secondary repository to your main project
- Selective Synchronization - Define specific files or directories via
.gitpopper
- Data Loss Prevention - Store sensitive files securely to prevent accidental deletion
- Automated Syncing - Keep your side repository updated with your workflow
- Centralized Shared Files - Avoid duplication of common files across projects
Install git-popper instantly with a single command:
curl -fsSL https://raw.githubusercontent.com/yourusername/git-popper/main/bin/git-popper | sudo tee /usr/local/bin/git-popper > /dev/null && sudo chmod +x /usr/local/bin/git-popper
Or, for local user installation (no sudo required):
mkdir -p ~/.local/bin
curl -fsSL https://raw.githubusercontent.com/yourusername/git-popper/main/bin/git-popper -o ~/.local/bin/git-popper && chmod +x ~/.local/bin/git-popper
# Then add ~/.local/bin to your PATH if not already
If you've already cloned the repository:
sudo cp bin/git-popper /usr/local/bin/
sudo chmod +x /usr/local/bin/git-popper
Coming soon!
Create a .gitpopper
file in your project root:
## Use this as side repository
FROM https://github.com/your-side-repo.git
## Store and sync local files into this remote directory of the repository
WORKDIR projects/2025/myproject
## Sync local files into side repo to prevent losing secret files
ADD .env
ADD .secrets
ADD Makefile-dev
Execute:
git-popper sync
git-popper sync
- Synchronize local files with the side repositorygit-popper pull
- Fetch the latest changes from the side repositorygit-popper push
- Push local updates to the side repositorygit-popper status
- Check synchronization status between local and side repository
Using git-popper
in conjunction with .gitignore
is essential for:
- Preventing sensitive files from being committed to the main repository
- Keeping environment files protected while still allowing synchronization with a dedicated repository
- Ensuring clean repository management by avoiding clutter
Beyond managing .env
and secret files, git-popper
can be leveraged for:
- Distributing shared scripts - Store and synchronize build scripts, CI/CD configurations, or utilities without duplication
- Managing development dependencies separately - Maintain local tools in a side repository instead of bloating the main repository
- Tracking and synchronizing documentation - Maintain shared documents across multiple projects while updating them centrally
git-popper is designed to be lightweight with minimal dependencies, ensuring:
- Fast synchronization even with large files
- Low memory footprint
- Efficient operation on CI/CD pipelines and resource-constrained environments
This project is released under the MIT License. See the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request. Check out our contribution guidelines for more information.
- Support for multiple side repositories
- Web interface for repository management
- Integration with popular CI/CD platforms
- Advanced conflict resolution