from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
< Git
Jump to navigation Jump to search

A "branch" is a separate copy (of the files involved in a project) which can be worked on without affecting the original copy.

"Branching" is a concept basic to most version control systems.



  • git branch lists local branches
  • git branch -r lists the remote branches
  • git branch -a lists both local and remote branches


  • git branch <name> creates a new branch called "name", pointing at the current HEAD revision
  • git checkout <name> moves HEAD to point to the branch called "name"
    • Note: git checkout -b <name> accomplishes both of the above in a single command
  • git branch -d <branch name> to delete a branch
    • Note: must be in a different branch

The basic sequence of events for creating a new branch called "test", updating it, then reverting back to the original branch:

  • git branch test - create the branch
  • git checkout test - switch to it
  • stage whatever changes you want to include in "test"
    • This can include adding any new files you've created for this branch.
  • git commit -a -m 'made a change' - commit the change to "test"
  • git checkout master - switch back to the main branch (removes new files, restores any you deleted)



How To

  • 2019-10-07 How To Rename a Local and Remote Git Branch
    • Basically: «git branch -m <new_name>» renames the branch locally and doesn't mess with anything upstream. It's like you just created <new_name> and put stuff in it.
    • Note: if the branch is not in the local repository, then you just need to git fetch it after the git checkout <old_name>.
    • Also: «git branch -c <new_name>» to copy instead of renaming.