31

If I have many unpushed commits spread among many branches in my local repo, what happens if I type git push? Will all of those commits be pushed or only those which belong to the current branch?

1

2 Answers 2

33

No, git push only pushes commits from current local branch to remote branch that you specified in command.

You can tell git to push all branches by setting the --all argument

See the command description

Sign up to request clarification or add additional context in comments.

Comments

19

It also depends on your push policies (git config push.default).

As I explain in "git - push current vs. push upstream (tracking)", only the "matching" policy pushes more than the current branch.

push all branches having the same name on both ends.
This makes the repository you are pushing to remember the set of branches that will be pushed out (e.g. if you always push maint and master there and no other branches, the repository you push to will have these two branches, and your local maint and master will be pushed there).

With that policy, only a simple git push is enough to push all (matching) branches.
Without that policy, a git push --all is necessary to force all branches to be pushed.

3 Comments

@Honey a git push --all, by pushing all branches, would also push all commits.
even commits on detached heads?
@Honey No: as illustrated here (stackoverflow.com/q/35736116/6309), detached heads would not be part if a push.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.