1

Situation

  1. I have 2 local branches A and B.
  2. I have 2 remote branches C and D.
  3. The name of my remote is origin.
  4. If I want to push changes from my branch B to remote branch D, what should be the git push syntax? I am confused among the following options
  • git push origin B:D
  • git push origin B/D
  • git push origin B
  • git push origin D

Please help me in understanding the correct git push syntax as well as its meaning

1 Answer 1

5

The technical description for this syntax is in the Git manual under "The Refspec" and the argument description of git push, but the short version is that there are two common formats:

  • A pair of branch names in the form source:destination, e.g. git push origin B:D means "source is the local branch B; destination is the remote branch D".
  • A single branch name, which is (unless configured specially) shorthand for source and destination having the same name, e.g. git push origin B is the same as git push origin B:B, and means "source is the local branch B; destination is the remote branch B".

Specifying B/D would look for a branch with that name, e.g. some projects have naming conventions like "username/task-number"). However, you may be confusing it with "remote tracking branches", which take the form "remote-name/remote-branch-name", such as "origin/D"; you wouldn't normally be using those in a git push command.

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

3 Comments

Possible edit - git push origin B is the same as git push origin B:B. I think you missed one origin
@DawsonSmith Thanks, I missed "origin" from all the commands initially, and realised when I glanced back. They should all be there now.
Great answer btw. Thanks

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.