Thread (2 messages) flat view 2 messages, 2 authors, 2016-06-15

ignored file can be deleted silently

From: Daniele Segato <hidden>
Date: 2016-06-15 22:51:09

Hi,

I noticed that when i put a file in the git ignore If i switch to a
branch where the file is present and versioned git delete my local
ignored file replacing it with the content of the branch I switched
this is done silently and the file is gone forever if I don't have a
copy somewhere

this is a stupid testcase:

$ git init
$ echo 'content I dont care about' > testcase.txt
$ git add testcase.txt
$ git commit -m "content I don't care about"
$ git checkout -b test
$ echo 'testcase.txt' > .gitignore
$ git rm testcase.txt
$ echo 'content I do care a lot' > testcase.txt
$ git add .gitignore
$ git commit -m "ignored testcase.txt"
$ cat testcase.txt
content I do care a lot
$ git checkout master
$ cat testcase.txt
$ git checkout test
$ ls testcase.txt
ls: testcase.txt: No such file or directory


This may sound stupid (put a content you care about in an ignored
file) but think about environment configuration files

it is common to initially commit them (wrong) then copy them to a
template file adding the original to ignore
especially if you are migrating from subversion where it is really
common practice to have local modified file you never commit (and I
think git really miss a *feature* like this)
they can be very big and with a lot of environment options...

if for some reason I had to switch to an old commit where the file is
still not ignored to do some test and I forgot that commit do not
ignore my little environment file I can lose it...

I think git should warn me in some way and, at least, give me a backup
of the file

what do you think about it?

regards,
Daniele Segato
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help