git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] branch: move multiple branches in a single --force

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 10, 2025, 21:25 UTC
Message-ID
<xmqq7c1jmgpq.fsf@gitster.g>
In-Reply-To
<pull.1992.git.git.1749546464346.gitgitgadget@gmail.com>

"Andrea Stacchiotti via GitGitGadget" <gitgitgadget@gmail.com> writes:

Show 5 quoted lines
> From: Andrea Stacchiotti <andreastacchiotti@gmail.com>
>
> Using either the 1-arg or 2-args form of --force
> it is possible to only move one branch at a time,
> to HEAD and <arg2> respectively.

If you are renaming (or "moving") a branch that is not checked out anywhere to a new name that is not in use, you do not even need to force. You can just do:

    git branch -m old new
You are not moving branches without "-m".

What you are doing is to point a branch A to point at a commit X with

    git branch A X

Your proposed log message talks about "--force" too much; if you are creating a branch, you need "--force" only when the name you want to use is already taken. Pointing the branch tip to a commit is not inherently tied to "--force", but your description gives a false impression that you are adding a special feature when "--force" is used. The proposed log message needs rewritten.

If there is not yet a branch A, you do not even need "--force" on this command line. Also take a special note that "X" does not have to be a branch name. It only has to resolve to a commit, so this is also valid:

    git branch [--force] A X~4

I can understand that it may appear to be handy to be able to set multiple branches at the same time with

    git branch A X~4 B X~3 C X~2		(* does not exist *)

with or without "--force". If none of A, B, or C exist, they can be created from these three comits X~4, X~3, and X~2.

Or you could propose a different syntax to create branches pointing at the same commit

    git branch A B C origin/master		(* does not exist *)

But either syntax to create multiple branches feel somewhat inadequate. What should happen to their associated configuration data like branch.A.remote and branch.B.merge? Should they all point at the same remote & a branch at the remote? How would that make having multiple of them useful?

Previous: Andrea Stacchiotti via GitGitGadgetNext: Andrea Stacchiotti
Message 2 of 10 in “branch: move multiple branches in a single --force”
  1. branch: move multiple branches in a single --forceAndrea Stacchiotti via GitGitGadget, Jun 10, 2025
  2. Junio C HamanoJun 10, 2025
  3. Andrea StacchiottiJun 10, 2025
  4. Junio C HamanoJun 11, 2025
  5. Andrea StacchiottiJun 11, 2025
  6. Junio C HamanoJun 11, 2025
  7. Andrea StacchiottiJun 12, 2025
  8. Junio C HamanoJun 12, 2025
  9. Junio C HamanoJun 12, 2025
  10. Andrea StacchiottiJun 12, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.