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-feature
and 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-feature
with mastergit status
-> Will show the conflicting(unmerged) files (if any occure)git branch -d add-new-feature
-> Delete theadd-new-feature
if 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
<<<<<<< HEAD
etc.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-feature
as it is not needed anymore