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

Re: What's the use case for committing both the freshly created file and it's exclusion in .gitignore?

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Aug 10, 2018, 21:56 UTC
Message-ID
<20180810215626.GC70480@genre.crustytoothpaste.net>
In-Reply-To
<CAAdU=LuNn7qdXf81C3-3=0uh7NOSihm3U3dfDcXPiKxfaZMaFQ@mail.gmail.com>
On Thu, Aug 09, 2018 at 01:04:43PM +0200, Bartosz Konikiewicz wrote:
Show 13 quoted lines
> Steps to reproduce:
> 
> 1. Create a new file.
> 2. Stage the file.
> 3. Add the file to .gitignore.
> 4. Stage the .gitignore.
> 5. Commit changes.
> 
> I imagined that the file would now be removed from the stage (because
> it's ignored now and not yet committed) but it isn't. Where this
> behavior would be desirable? I know that a 'git add' command can be
> invoked with an '-f' flag, which would yield the same result, but I
> can't come up with an explanation where can it be applied.

Let me give you one. If you use pristine-tar to check in the contents of an upstream tarball, upstream may have included both a .gitignore file and one or more ignored files in their tarball (say, something autoconf generated). Both of those files will be required in order to reproduce the tarball, so git add -f or multiple stages of add will need to be used.

If we unstaged the files from the index when the .gitignore was added, this workflow wouldn't be possible.

-- 
brian m. carlson: Houston, Texas, US
OpenPGP: https://keybase.io/bk2204
Previous: Bartosz Konikiewicz
Message 5 of 5 in “What's the use case for committing both the freshly created file and it's exclusion in .gitignore?”
  1. Bartosz KonikiewiczAug 9, 2018
  2. Jeff KingAug 9, 2018
  3. Jonathan NiederAug 10, 2018
  4. Bartosz KonikiewiczAug 10, 2018
  5. brian m. carlsonAug 10, 2018

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.