git commit not committing, confused

From: seanh <hidden>
Date: 2016-06-15 22:50:39

How did this happen?

I have a git repo containing a LOG.txt file. I made some changes to this
file and committed them. Actually, I called this script which did so:

	#!/bin/sh -e
	# Append timestamped one-liners to a file and commit the file to git.
	logdir=~/txt
	logfile=LOG.txt
	cd "$logdir"
	if [ $# = 0 ]; then
		# No command-line arguments, just print out the last entry.
		tail -n 1 $logfile
	else
		entry="[`date`] [`hostname`] $*"
		echo $entry >> $logfile
		git commit $logfile -m "$logfile: $*"
		git push
		tail -n 1 $logfile
	fi

The script executes (and shows output from git) with no errors. `git
log` shows the commit, `git log -p` shows the changes committed to the
LOG.txt file.

However, `git log LOG.txt` does _not_ show the commit.
`git status` shows LOG.txt as modified and unstaged.
`git diff LOG.txt` shows a diff of the changes to LOG.txt, the same changes so
that show up in `git log -P`.
After running `git add LOG.txt` again, `git status` still shows LOG.txt
as modified and unstaged!
`git commit LOG.txt` reports 'no changes added to commit'.

So this doesn't make sense. I don't know what happened or how. git's
index seems to have got into a mess. If I clone the repo then cd into
the clone and run git status it shows LOG.txt as modified and unstaged,
even though this is a brand new fresh clone!
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help