Compact all commits in a GitHub PR into a single commit with comprehensive message and DCO sign-off
Bash
Compact multiple commits in a GitHub Pull Request into a single commit while preserving all changes and creating a comprehensive commit message with proper DCO sign-off.
Implementation Steps
Examine PR Structure: View the PR details and commit history to understand what needs to be compacted using gh pr view $1
Checkout PR Branch: Switch to the PR branch using gh pr checkout $1 to work with the commits locally
Compact Commits: Use git reset --soft HEAD~N (where N is number of commits) to stage all changes from multiple commits, then create a single comprehensive commit with git commit --signoff
Force Push Update: Push the compacted commit back to the PR branch using git push --force-with-lease to update the remote PR
Verify Results: Confirm the PR now shows only one commit with all the original changes preserved and proper DCO sign-off
Notes
This command is useful for cleaning up PR history before merging
Preserves all code changes while creating a clean, single commit
Includes DCO sign-off required by many projects
The comprehensive commit message includes all relevant details from the original commits
Uses --force-with-lease for safer force pushing
Works with any GitHub repository that has PR access