Note that there are some explanatory texts on larger screens.

plurals
  1. POIssue with renaming a directory in git to lowercase while ignoreLowercase=True
    primarykey
    data
    text
    <p>When I type <code>git status</code>, I see:</p> <pre><code># On branch master # Changes not staged for commit: # (use "git add &lt;file&gt;..." to update what will be committed) # (use "git checkout -- &lt;file&gt;..." to discard changes in working directory) # # modified: DIR/a # </code></pre> <p>However, in my working directory I see that this file is actually called <code>dir/a</code> (note the lowercase <code>dir</code> instead of <code>DIR</code>).</p> <p><strong>Question:</strong> I want to add this modified <code>a</code> file to the staging area and commit, but I want it to be as it is in my working directory (which shows <code>dir/a</code>) - <em>as opposed to the way git is seeing it as <code>DIR/a</code></em>. How can I do this?</p> <p><strong>Important Note:</strong> </p> <p>Unfortunately, I can't simply <code>git mv DIR/a dir/a</code> because <code>DIR/a</code> doesn't actually exist in the working tree.</p> <p>Currently my <code>.git/config</code> file shows <code>ingorecase = true</code>, so I know that I have to set that equal to false. However, after doing nothing but changing this flag, a <code>git status</code> of this now reveals:</p> <pre><code># On branch master # Changes not staged for commit: # (use "git add &lt;file&gt;..." to update what will be committed) # (use "git checkout -- &lt;file&gt;..." to discard changes in working directory) # # modified: DIR/a # # Untracked files: # (use "git add &lt;file&gt;..." to include in what will be committed) # # dir/ </code></pre> <p>I expected this since git only tracks content, and switching ignorecase would make git think a new file was added. Unfortunately, git now thinks that I have two files that are modified, when in fact I only have one. I want <code>git status</code> to simply show <code>dir/a</code> (as it is in my working directory) instead of <code>DIR/a</code>, with the same diffs of <code>a</code> I had just recently made.</p> <p><strong>Additional Note</strong></p> <p>If you are curious as to how such a precarious situation arose in the first place, I have managed to replicate the silly mistakes I had made when originally renaming the case of my directory from <code>DIR</code> to <code>dir</code>. If you think this would help in getting to a solution for this problem, I would be happy to make an edit that would reveal how I mistakenly made git so confused. (it involves me accidentally hitting <code>mv</code> instead of <code>git mv</code>, and being unaware of the <code>ignorecase</code> flag and leaving it as <code>ignorecase=true</code>).</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload