Open Source Contribution Flow
Find a project
Find an objective - issue already present, created new, fecture, bug
Fork and clone the project
git clone https://github.com/avinal/git-session
Configure your clone
origin [email protected] :avinal/git-session.git (fetch)
origin [email protected] :avinal/git-session.git (push)
upstream [email protected] :avinal/git-session.git (fetch)
upstream [email protected] :avinal/git-session.git (push)
create a new branch, never use main branch
git switch -c avinal/issue1
Make the change/contribution
Stage your changes git add BOOKS.md
Commit your changes git commit -s
Push your changes git push origin avinal/issue1
Creating a pull request
Resolving conflicts
Fetch the upstream main git fetch upstream main
Rebase and resolve issues git rebase upstream/main
Add your changes
Rebase continue git rebase --continue
Rebase abort if needed git rebase --abort
Push with force if needed git push origin avinal/issue1 -f
You make the changes
You stage your changes git add BOOKS.md
You amend your commit git commit --amend
reset commit git reset --soft HEAD~
DCO - Developer Certificate of Origin
to insert i
to save and exit :x
to delete a line dd
to come back to normal mode ESC