How to close a branch WITHOUT removing it from history in git?

I’d like to make a commit and close its branch, without removing it from history.

With mercurial I’d commit --close-branch, then update to a previous one, and go on working. With git… I’m confused.

  • Branching from a Tag
  • git: all local branches are behind the remote. How can I bring them all up to the remote state?
  • How can I checkout a branch while ensuring that none of my current branch's changes are carried over?
  • Is checking out remote branches in git safe now?
  • Git merge errors
  • GIT: How to protect the branch from being removed by other developers?
  • Git submodule update overwritten
  • GIT stash apply reverse doesn't work with js and rb files
  • Missing dependency in Gerrit
  • Ruby returning null when printing same string again
  • Maintain Android App for Multiple Markets (on Git)
  • Merging ActiveRecord migrations out of order
  • One Solution collect form web for “How to close a branch WITHOUT removing it from history in git?”

    There’s no exact equivalent to closing a branch in Git, because Git branches are more lightweight than in Mercurial. Their Mercurial equivalent is more bookmarks than branches.

    If I understand correctly, closing a branch in Mercurial roughly makes it disappear from the branch list, so you can achieve the same thing by archiving it. A usual practice is to tag its tip as archive, and delete it:

    git tag archive/<branchname> <branchname>
    git branch -d <branchname>
    git checkout master

    The branch will be deleted, and can be retrieved later by checking out the tag, and recreating the branch:

    git checkout archive/<branchname>
    git checkout -b new_branch_name
    Git Baby is a git and github fan, let's start git clone.