#!/bin/bash # Check if a commit message was provided if [ -z "$1" ]; then echo "Usage: $0 \"Your commit message here\"" exit 1 fi COMMIT_MESSAGE="$1" # Ensure you're on the main branch git checkout main # Add 'public' remote if it doesn't exist if ! git remote | grep -q '^public$'; then git remote add public https://github.com/jetkvm/kvm.git fi # Fetch the latest from the public repository git fetch public || true # Create a temporary branch for the release git checkout -b release-temp # If public/main exists, reset to it; else, use the root commit if git ls-remote --heads public main | grep -q 'refs/heads/main'; then git reset --soft public/main else git reset --soft $(git rev-list --max-parents=0 HEAD) fi # Merge changes from main git merge --squash main # Commit all changes as a single release commit git commit -m "$COMMIT_MESSAGE" # Force push the squashed commit to the public repository git push --force public release-temp:main # Switch back to main and delete the temporary branch git checkout main git branch -D release-temp # Remove the public remote git remote remove public