Setup: Running openindiana (hipster) a solaris 11 open source branch git 2.12.2 I've recently moved from mercurial to git mainly because git appears to receive the most development and the heaviest use. I'm using git with hold over behavior developed from my time using cvs long ago. I keep a hierarchy of directories and files that mirrors the structure on the OS where git is installed [just where ever tracked files are located on OS] not the entire structure. I keep a git repo on the same OS that is created by rsyncing the BUFFERED hierarchy into a git repo Many of the BUFFERED files are symlinked to there places in the OS Some are not because certain files being symlinked seemed to cause permissions type problems on the OS. In those cases they are periodically copied to the BUFFER hierarchy So, not to get too tangled up in explaining my setup... tracked files change in the buffer area or new files are created there. Periodically I rsync the files in BUFFER over the files in git repo And record the changes thru normal git operations git status git add (when needed) git commit ,---- | Aside: | While I would welcome comments or suggestions about using a setup like | this, that is not the subject of this post. `---- This is my most recent attempt at learning and using git but I have done a few tries before. I'm noticing behavior I do not recall seeing in earlier attempts. rsyncing the buffer over the git repo is now producing a result where `git status' shows any changed or added files as modified or new but all need to be added before a commit can take place, not just the new ones. Shouldn't files that changed but are already being tracked just show up as modified and not need adding? That is, if I have the file ~/.bashrc, which is really a symlink to BUFFER/OS/export/home/reader/.bashrc And is tracked in git repo as REPO/OS/export/home/reader/.bashrc When; BUFFER/OS/export/home/reader/.bashrc is edited. Then rsynced like below: BUFFER <root of rsync is here> /OS/export/home/reader/.bashrc over GITREPO <root of rsync> /OS/export/home/reader.bashrc Thereby changing the repo file in place Since that file is already being tracked; shouldn't `git status' show that file as modified but ready to be committed instead of a file that is modified but needs to be added before a commit can happen? Another side of this is that a `git diff FILE' only works before an `git add .' operation is done. That is, if I run `git diff FILE' AFTER `git add' .. no diff is reported, even though it is not committed yet. So, for example: if I'm committing and in the vi buffer of the commit and want to see a diff of FILE to aid my log notes. git diff FILE will report nothing whatever. Is that expected behavior?