Development and git pointers - Barracuda09/SATPI GitHub Wiki
-
If you like (or need) to add a new feature or fix. Then create a new branch to start working on this. With this command you will create a branch
add-new-featureand checks it out or switches to this new branch:git checkout -b add-new-feature -
Check with this command that we are switched to the correct branch:
git branch -
Now you can start working on this feature:
git status-> This will check the status of changed or added filesgit add --all-> Will stage(add) all changed (new, modified, and deleted) files -
When you are finished with the new feature, commit this (with GPG-sign -S) to the new branch:
git commit -S -m "Added some cool feature" -
When you need to work on a different branch, and you are not finished to commit these changes, you can stash the changes before checking out this different branch:
git stash-> Now the changes are stashed(saved)When returning to this branch you can unstash(recall) the changes with and maybe before rebase(update) from master:
git rebase master-> Now this branch is rebase(updated) with mastergit stash pop-> Now the changes are unstashed(recall changes) -
Now we need to merge this with master with:
git checkout master-> Switch back to mastergit merge add-new-feature-> Merge branchadd-new-featurewith mastergit status-> Will show the conflicting(unmerged) files (if any occure)git branch -d add-new-feature-> Delete theadd-new-featureif it is not needed anymore -
When conflicts occure when merging:
git status-> Will show the conflicting(unmerged) filesOpen these file in your editor and resolve the problems by looking for
<<<<<<< HEADetc.git add file.ext-> Now stage(add) the resolved filegit status-> Check if the merge conflict is correctly resolvedgit commit -m "merged with resolved conflicts"-> Commit the merge conflictsgit branch -d add-new-feature-> Delete theadd-new-featureas it is not needed anymore