Updating the currently checked out branch may cause confusion
Some example branch names: The last one is an example of a synchronized private branch.
To stage the modified or untracked files for your commit use the git add command, you can specify files or paths and git will add files recursively.
Now our history is nice and clean, and we have avoided the two issues listed above.
Now, obviously it’d be easiest to just not make mistakes in the first place, but I’m willing to bet that this sort of thing happens to people more likely than most of us would like to admit.
If you’re still confused, let’s look at an example.
Say I have been doing work on a feature branch and I want to merge in the changes my teammates have made on the that I don’t have on my branch (but I would like to).
in its simplest form is a command which will merge another branch into the branch where you are currently working, and move all of the local commits that are ahead of the rebased branch to the top of the history on that branch.
Here I am assuming you are using the command line or git bash shell. What this is really doing is taking all of your changes, removing them from your private branch, advancing the brach up to the head of master, then replaying your commits.
Do not use git pull without the rebase option unless you really intend to perform a merge. The status command give a highly usefull update of which files are in which state.
Untracked, modified and staged files are listed seperately.
Please remember that public branches should not be rebased.
For private branches please follow the convention You can sync these with github (for backup reasons) and rebase.