# Switching branch before commit

3 messages from 2007-05-10 to 2007-05-10. Participants: Ron Parker, Adam Roben, Junio C Hamano.
Thread: https://gitlist.dev/t/8069

## Ron Parker, 2007-05-10 19:43

Subject: Switching branch before commit
Message-ID: <769697AE3E25EF4FBC0763CD91AB1B0201D496E7@MBGMail01.mobot.org>
URL: https://gitlist.dev/e/769697AE3E25EF4FBC0763CD91AB1B0201D496E7%40MBGMail01.mobot.org

```
I know this is probably a FAQ and I thought I found it somewhere once,
but... How do I commit changes from in my working directory to another
(possibly non-existent) branch?
 
All too often I am working on changes and realize I am sitting on master
or a topic branch and I need to commit my mods to different branch.  I
really don't like:
 
    git commit
    git branch <other-branch>
    git reset --hard HEAD^
 
Is there anything like:
    git commit -b <other-branch> [<file>...]?

If not, would patches to implement such a change be accepted?

```

## Adam Roben, 2007-05-10 20:02

Subject: Re: Switching branch before commit
Message-ID: <CAD30837-B0EB-4752-B563-DE2517CFF0A1@apple.com>
URL: https://gitlist.dev/e/CAD30837-B0EB-4752-B563-DE2517CFF0A1%40apple.com
In-Reply-To: <769697AE3E25EF4FBC0763CD91AB1B0201D496E7@MBGMail01.mobot.org>

```
On May 10, 2007, at 12:43 PM, Ron Parker wrote:

> I know this is probably a FAQ and I thought I found it somewhere once,
> but... How do I commit changes from in my working directory to another
> (possibly non-existent) branch?
>
> All too often I am working on changes and realize I am sitting on  
> master
> or a topic branch and I need to commit my mods to different branch.  I
> really don't like:
>
>    git commit
>    git branch <other-branch>
>    git reset --hard HEAD^
>
> Is there anything like:
>    git commit -b <other-branch> [<file>...]?
>
> If not, would patches to implement such a change be accepted?

    You can do this simply by doing the following:

git checkout -b <other-branch>
git commit

    The changes in your working tree will be carried over to <other- 
branch> when you do the git-checkout command.

-Adam

```

## Junio C Hamano, 2007-05-10 20:08

Subject: Re: Switching branch before commit
Message-ID: <7v3b24jvar.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7v3b24jvar.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <769697AE3E25EF4FBC0763CD91AB1B0201D496E7@MBGMail01.mobot.org>

```
"Ron Parker" <ron.parker@mobot.org> writes:

> I know this is probably a FAQ and I thought I found it somewhere once,
> but... How do I commit changes from in my working directory to another
> (possibly non-existent) branch?
>  
> All too often I am working on changes and realize I am sitting on master
> or a topic branch and I need to commit my mods to different branch.  I
> really don't like:
>  
>     git commit
>     git branch <other-branch>
>     git reset --hard HEAD^

I do not like that either, and I wouldn't do that.  In fact that
would not work, as "git branch" would not switch to the other
branch you just created.

I would do:

	$ git checkout -b other-branch

which would create and switch to other-branch, based on the
current HEAD (in your case, 'master'), WITHOUT disrupting what
is in your working tree and the index.

and then (perhaps after working on it some more to perfection):

	$ git commit

to commit that work I (mistakenly) started on 'master' in that
other branch.  Then I would come back to master:

	$ git checkout master

```
