Major Git projects such as CMake have a contributor workflow that goes like:
- Fork the main repo
- on the fork, create a feature branch
git checkout -b add-feature1
- once changes accepted:
git checkout master git remote add upstream (URL of the main repo, not your fork) git fetch upstream git rebase upstream/master
Now your master branch is up to date with the main project.
- update your local branch to main master
git checkout add-feature1 git rebase master
- This step “squashes” all your commits down to one. Be sure to make a copy of your fork directory first!
git rebase -i HEAD~10 # or however many commits you made
change all the “pick” of your changes to “s”, EXCEPT for the first commit you made.
- Force push your changes to the feature branch remote.