This document explains how to connect this local Fluxheim folder to a GitHub
repository that already contains placeholder files such as .gitignore,
README.md, and LICENSE.
From the Fluxheim folder:
git status --short
git remote -vIf the project is not initialized yet:
git init
git branch -M mainFluxheim should keep LICENSE as EUPL-1.2. If the GitHub repository already
has a different license file, decide before merging which license is
authoritative.
Use this when the remote has files you do not want to accidentally overwrite.
- Add the GitHub remote:
git remote add origin git@github.com:OWNER/fluxheim.gitor with HTTPS:
git remote add origin https://github.com/OWNER/fluxheim.git- Fetch the remote:
git fetch origin- Inspect what is already on GitHub:
git ls-tree --name-only origin/main
git show origin/main:README.md
git show origin/main:LICENSE
git show origin/main:.gitignoreIf the branch is named master remotely, use origin/master in those commands
or rename the remote branch in GitHub before continuing.
- Create a local integration branch:
git switch -c integrate-github-main- Merge the remote history:
git merge origin/main --allow-unrelated-histories- Resolve conflicts deliberately:
- keep Fluxheim's README if the remote README is empty;
- keep the EUPL-1.2 LICENSE;
- merge
.gitignoreentries if the remote has useful ignore patterns; - do not delete Fluxheim docs or source files.
- Run checks:
scripts/release_checks.sh- Commit the integration:
git add .
git commit -m "Import Fluxheim project"- Push:
git push -u origin integrate-github-mainOpen a pull request from integrate-github-main to main, or push to main
after reviewing the diff.
Use this only if the remote files are truly empty/placeholders and you are comfortable replacing them with the local Fluxheim project.
git remote add origin git@github.com:OWNER/fluxheim.git
git fetch origin
git push --force-with-lease -u origin main--force-with-lease is safer than plain --force because it refuses to
overwrite new remote commits you have not fetched.
Check the current branch:
git branch --show-currentRename it to main:
git branch -M mainThen push:
git push -u origin mainIf origin is already configured:
git remote -vChange it with:
git remote set-url origin git@github.com:OWNER/fluxheim.gitBefore the first GitHub push, the repository should include:
Cargo.tomlandCargo.lock;rust-toolchain.toml;deny.toml;README.md;CHANGELOG.md;ROADMAP.md;SECURITY.md;LICENSE;docs/;examples/;scripts/;src/;.github/workflows/ci.yml;.github/dependabot.yml;Containerfile;.containerignore;.cargo/config if it contains project-specific build settings.
Do not commit local secrets, private TLS keys, ACME account keys, Cloudflare API tokens, cache directories, Podman volumes, or generated release artifacts.
After pushing, confirm these repository settings are enabled:
- Dependabot alerts;
- Dependabot version updates from
.github/dependabot.yml; - CodeQL default setup for code scanning alerts;
- private vulnerability reporting or GitHub security advisories.
Keep only one active CodeQL configuration. If GitHub default setup is enabled, do not also add an advanced CodeQL workflow; GitHub rejects the duplicate SARIF upload.
After the repository is on GitHub and checks pass, create a signed incubator tag instead of jumping straight to 1.0:
git tag -s v0.1.0 -m "Fluxheim 0.1.0 repository baseline"
git tag -v v0.1.0
git push origin v0.1.0Use the versioning plan to decide when the project is ready for v1.0.0.