path: root/Documentation/git-branch.txt
diff options
authorLars Hjemli <>2006-11-28 14:47:40 (GMT)
committerJunio C Hamano <>2006-12-06 07:50:57 (GMT)
commitc976d415e5352886f0650f8e2edba81866c38587 (patch)
tree49731f2430197df384f3259a899a0bba8156e284 /Documentation/git-branch.txt
parent8ebe185bbf3f1f4f59bcc61e3d1849a76f6af983 (diff)
git-branch: add options and tests for branch renaming
Extend git-branch with the following options: git-branch -m|-M [<oldbranch>] newbranch The -M variation is required to force renaming over an exsisting branchname. This also indroduces $GIT_DIR/RENAME_REF which is a "metabranch" used when renaming branches. It will always hold the original sha1 for the latest renamed branch. Additionally, if $GIT_DIR/logs/RENAME_REF exists, all branch rename events are logged there. Finally, some testcases are added to verify the new options. Signed-off-by: Lars Hjemli <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'Documentation/git-branch.txt')
1 files changed, 21 insertions, 2 deletions
diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt
index 4f5b5d5..71417fe 100644
--- a/Documentation/git-branch.txt
+++ b/Documentation/git-branch.txt
@@ -8,8 +8,9 @@ git-branch - List, create, or delete branches.
-'git-branch' [-r] [-a] [-v] [--abbrev=<length>]
+'git-branch' [-r | -a] [-v [--abbrev=<length>]]
'git-branch' [-l] [-f] <branchname> [<start-point>]
+'git-branch' (-m | -M) [<oldbranch>] <newbranch>
'git-branch' (-d | -D) <branchname>...
@@ -24,6 +25,12 @@ It will start out with a head equal to the one given as <start-point>.
If no <start-point> is given, the branch will be created with a head
equal to that of the currently checked out branch.
+With a '-m' or '-M' option, <oldbranch> will be renamed to <newbranch>.
+If <oldbranch> had a corresponding reflog, it is renamed to match
+<newbranch>, and a reflog entry is created to remember the branch
+renaming. If <newbranch> exists, -M must be used to force the rename
+to happen.
With a `-d` or `-D` option, `<branchname>` will be deleted. You may
specify more than one branch for deletion. If the branch currently
has a ref log then the ref log will also be deleted.
@@ -46,6 +53,12 @@ OPTIONS
Force the creation of a new branch even if it means deleting
a branch that already exists with the same name.
+ Move/rename a branch and the corresponding reflog.
+ Move/rename a branch even if the new branchname already exists.
List the remote-tracking branches.
@@ -53,7 +66,7 @@ OPTIONS
List both remote-tracking branches and local branches.
- Show sha1 and subject message for each head.
+ Show sha1 and commit subjectline for each head.
Alter minimum display length for sha1 in output listing,
@@ -70,6 +83,12 @@ OPTIONS
be given as a branch name, a commit-id, or a tag. If this option
is omitted, the current branch is assumed.
+ The name of an existing branch to rename.
+ The new name for an existing branch. The same restrictions as for
+ <branchname> applies.