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

Re: untracked file deleted from the master branch, when checked out to it from a local branch

From
Marius Storm-Olsen <mstormo@gmail.com>
Date
May 20, 2014, 18:29 UTC
Message-ID
<537B9F14.3030403@gmail.com>
In-Reply-To
<2726779.MFtIaLB4b4@linux-wzza.site>
On 5/20/2014 12:20 PM, Arup Rakshit wrote:
Show 12 quoted lines
> On Tuesday, May 20, 2014 12:06:49 PM you wrote:
>
>>
>> It never "came to the new branch", as it was never version controlled,
>> it was an untracked file left behind when you switched branches.
>>
>> Once you added it to the new branch, change_class, it became a version
>> controlled file,
>
> This is still  didn't get it. If an untracked file didn't come in the new
> branch, how would I able to add it to stage ? I am not getting this part. You
> are right, but I am not able to understand this one, my bad! :(
Ok, step by step:

You've created test.rd, that was never added to the git repo. (You never committed it to the master branch.)

 > ***********HERE I switched to a NEW Branch****************
 > Arup-iMac:arup_git shreyas$ git checkout -b change_class
 > Switched to a new branch 'change_class'
 > Arup-iMac:arup_git shreyas$ ls
 > git_1.txt test.rb
test.rd is untracked, so still there. Git doesn't touch untracked files.
 > Arup-iMac:arup_git shreyas$ vi test.rb
 > Arup-iMac:arup_git shreyas$ head -1 test.rb
 > class Fooo
 > Arup-iMac:arup_git shreyas$ head -2 test.rb
 > class Fooo
 >    def self.bar
You modified it
 > Arup-iMac:arup_git shreyas$ git commit -am 'changed the class name'
 > # On branch change_class
 > # Untracked files:
 > #   (use "git add <file>..." to include in what will be committed)
 > #
 > #test.rb
 > nothing added to commit but untracked files present (use "git add" to 
track)
You did nothing here..
 > Arup-iMac:arup_git shreyas$ git add test.rb
 > Arup-iMac:arup_git shreyas$ git commit -am 'changed the class name'
 > [change_class 2d40033] changed the class name
 >   1 file changed, 7 insertions(+)
 >   create mode 100644 test.rb

Your previously untracked file has now been checked in. It's no longer untracked, so now Git cares.

 > Arup-iMac:arup_git shreyas$ cat test.rb
 > class Fooo
 >    def self.bar
 >      12
 >    end
 > end
 >
 > Fooo.bar
 > Arup-iMac:arup_git shreyas$ git checkout master
 > Switched to branch 'master'

You switched back to master branch, which contains no test.rb (as it's clean and has never been committed to), so therefore Git removes the file, since the now tracked test.rb shouldn't be on the master branch.

-- 
.marius
Previous: Sergei Organov
Message 10 of 10 in “untracked file deleted from the master branch, when checked out to it from a local branch”
  1. Arup RakshitMay 20, 2014
  2. Marius Storm-OlsenMay 20, 2014
  3. Arup RakshitMay 20, 2014
  4. Marius Storm-OlsenMay 20, 2014
  5. Arup RakshitMay 20, 2014
  6. Junio C HamanoMay 20, 2014
  7. Arup RakshitMay 20, 2014
  8. Marius Storm-OlsenMay 20, 2014
  9. Sergei OrganovMay 21, 2014
  10. Marius Storm-OlsenMay 20, 2014

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.