# Git checkout: difference in behavior and what is in the documentation

3 messages from 2010-07-02 to 2010-07-02. Participants: Sabyasachi Ruj, Markus Heidelberg, Chris.Cheney.
Thread: https://gitlist.dev/t/24260

## Sabyasachi Ruj, 2010-07-02 05:30

Subject: Git checkout: difference in behavior and what is in the documentation
Message-ID: <AANLkTil4LcA0F5FEeoKOnR7Ko_gEpMHD_HCi3FPTG55D@mail.gmail.com>
URL: https://gitlist.dev/e/AANLkTil4LcA0F5FEeoKOnR7Ko_gEpMHD_HCi3FPTG55D%40mail.gmail.com

```
I've asked the question in detail in Stack Overflow:

http://stackoverflow.com/questions/3163325/confusion-about-git-checkout

Even if there is no bug in the git behavior, I think the documentation
should be more clear.

-- 
Sabyasachi

```

## Markus Heidelberg, 2010-07-02 06:09

Subject: Re: Git checkout: difference in behavior and what is in the documentation
Message-ID: <201007020809.17551.markus.heidelberg@web.de>
URL: https://gitlist.dev/e/201007020809.17551.markus.heidelberg%40web.de
In-Reply-To: <AANLkTil4LcA0F5FEeoKOnR7Ko_gEpMHD_HCi3FPTG55D@mail.gmail.com>

```
Sabyasachi Ruj, 2010-07-02 07:30:
> I've asked the question in detail in Stack Overflow:
> 
> http://stackoverflow.com/questions/3163325/confusion-about-git-checkout

You should rather post the question and not only the link. Here is the
relevant part:

> I am confused about a behavior of git checkout. The documentation of git
> checkout says:
> 
> --merge 
> When switching branches, if you have local modifications to one or
> more files that are different between the current branch and the
> branch to which you are switching, the command refuses to switch
> branches in order to preserve your modifications in context. However,
> with this option, a three-way merge between the current branch, your
> working tree contents, and the new branch is done, and you will be on
> the new branch.
> 
> But, I have done a small test which is not behaving as said in the bold
> part. That is:
> 1. I create a git repo
> 2. create a directory and a file with some conent and commit it in
>    master branch.
> 3. Create another branch "testbranch"
> 4. change the content of the file in master. But did not commit.
> 5. switched to "testbranch". 
> 6. Now the changed and uncommitted changes from master branch come to
>    testbranch!
> 
> Wasn't it supposed to fail, if I have some local changes and wanted to
> switch to a branch?

'master' and 'testbranch' are the same, so there are no "files that are
different between the current branch and the branch to which you are
switching", so git doesn't have to fail.

> Even if there is no bug in the git behavior, I think the documentation
> should be more clear.

I think it's quite clear.

Markus

```

## Chris.Cheney, 2010-07-02 08:29

Subject: Re: Git checkout: difference in behavior and what is in the documentation
Message-ID: <Xns9DA96096F7CEChrisCheneytesconet@80.91.229.10>
URL: https://gitlist.dev/e/Xns9DA96096F7CEChrisCheneytesconet%4080.91.229.10
In-Reply-To: <201007020809.17551.markus.heidelberg@web.de>

```
Markus Heidelberg <markus.heidelberg@web.de> wrote in 
news:201007020809.17551.markus.heidelberg@web.de:

> Sabyasachi Ruj, 2010-07-02 07:30:
>> I've asked the question in detail in Stack Overflow:
>> 
>> http://stackoverflow.com/questions/3163325/confusion-about-git-checkout
> 
> You should rather post the question and not only the link. Here is the
> relevant part:
> 
>> I am confused about a behavior of git checkout. The documentation of git
>> checkout says:
>> 
>> --merge 
>> When switching branches, if you have local modifications to one or
>> more files that are different between the current branch and the
>> branch to which you are switching, the command refuses to switch
>> branches in order to preserve your modifications in context. However,
>> with this option, a three-way merge between the current branch, your
>> working tree contents, and the new branch is done, and you will be on
>> the new branch.
>> 
>> But, I have done a small test which is not behaving as said in the bold
>> part. That is:
>> 1. I create a git repo
>> 2. create a directory and a file with some conent and commit it in
>>    master branch.
>> 3. Create another branch "testbranch"
>> 4. change the content of the file in master. But did not commit.
>> 5. switched to "testbranch". 
>> 6. Now the changed and uncommitted changes from master branch come to
>>    testbranch!
>> 
>> Wasn't it supposed to fail, if I have some local changes and wanted to
>> switch to a branch?
> 
> 'master' and 'testbranch' are the same, 

Rather, 'master' and 'testbranch' are the names of different branches, but 
they identify the same commit at that time.

```
