title: Make git status show unmodified/unchanged tracked files?
body: <p>Here is a brief snippet example (which you can paste in your Linux terminal), creating a new <code>git</code> repository and adding some files to it (using git version 1.7.9.5):</p>
  
  <pre><code>cd /tmp/
  mkdir myrepo_git
  cd myrepo_git/
  git init
  git config user.name "Your Name"
  git config user.email you@example.com
  echo "test" &gt; file_tracked_unchanged.txt
  echo "test" &gt; file_tracked_changed.txt
  echo "test" &gt; file_untracked.txt
  git add file_tracked_unchanged.txt 
  git add file_tracked_changed.txt
  git commit -m "initial commit"
  </code></pre>
  
  <p>Now, after the initial commit, I want to change the <code>file_tracked_changed.txt</code> files, and keep the others (here, only <code>file_tracked_unchanged.txt</code>) unchanged for the next commit. Below is a snippet which demonstrates that, and the diverse outputs of <code>git status</code> vs <code>git ls-files</code> (<code>git</code> shell output is prefixed with <code>#</code>):</p>
  
  <pre><code>echo "test more" &gt;&gt; file_tracked_changed.txt
  
  git status -uno
  # # 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:   file_tracked_changed.txt
  # #
  # no changes added to commit (use "git add" and/or "git commit -a")
  git status
  # # 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:   file_tracked_changed.txt
  # #
  # # Untracked files:
  # #   (use "git add &lt;file&gt;..." to include in what will be committed)
  # #
  # # file_untracked.txt
  # no changes added to commit (use "git add" and/or "git commit -a")
  git status -uno --short
  #  M file_tracked_changed.txt
  git status --short
  #  M file_tracked_changed.txt
  # ?? file_untracked.txt
  git ls-files -v
  # H file_tracked_changed.txt
  # H file_tracked_unchanged.txt
  
  git add file_tracked_changed.txt
  
  git status -uno
  # # On branch master
  # # Changes to be committed:
  # #   (use "git reset HEAD &lt;file&gt;..." to unstage)
  # #
  # # modified:   file_tracked_changed.txt
  # #
  # # Untracked files not listed (use -u option to show untracked files)
  git status
  # # On branch master
  # # Changes to be committed:
  # #   (use "git reset HEAD &lt;file&gt;..." to unstage)
  # #
  # # modified:   file_tracked_changed.txt
  # #
  # # Untracked files:
  # #   (use "git add &lt;file&gt;..." to include in what will be committed)
  # #
  # # file_untracked.txt
  git status -uno --short
  # M  file_tracked_changed.txt
  git status --short
  # M  file_tracked_changed.txt
  # ?? file_untracked.txt
  git ls-files -v
  # H file_tracked_changed.txt
  # H file_tracked_unchanged.txt
  </code></pre>
  
  <p>What I'm looking for, is a command which will show all tracked files in a directory (which <code>git ls-files -v</code> does), with their accurate repository status (which <code>git ls-files</code> doesn't show, as it shows <code>H</code> as status for all tracked files). For instance, I'd like to obtain something like the pseudocode:</p>
  
  <pre><code>git status-tracked
  # M file_tracked_changed.txt
  # . file_tracked_unchanged.txt
  </code></pre>
  
  <p>... where the dot <code>.</code> would a symbol indicating a tracked, but unchanged file (if I recall correctly, SVN may use a <code>U</code> character for these). </p>
  
  <p>Ultimately, I'd like to also show the status of all files in a directory, as in the pseudocode:</p>
  
  <pre><code>git status-tracked-and-untracked
  # M file_tracked_changed.txt
  # . file_tracked_unchanged.txt
  # ?? file_untracked.txt
  </code></pre>
  
  <p>... but it's more important to me to get to the status of all tracked files, as in the pseudo <code>git status-tracked</code> above. </p>
  
  <p>Any command in <code>git</code>, that already does something like this? </p>