Skip to contentSkip to conversation

problems of git-status

DISCUSSION Liu Yubao 2 participants 2 messages Jun 15, 2016

lore
Share & tools
lore

Liu Yubao

author
#0 lore raw

Hi,
I find "git status" and "git status ." have different output and the latter
will go wrong in the case below:

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

#!/bin/sh
rm -rf tt; mkdir tt; cd tt

git init
mkdir AA
echo hello>a
git add .
echo world>a

echo "different output..."
echo "--------------------git status-------------" git status
echo "--------------------git status . ----------" git status .

git add a
git commit -m "test"
echo hello world>a
git add a
sleep 4
echo world hello>a
echo "--------------------git status-------------" git status
echo "--------------------git status . ----------" git status .

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

I use git version 1.5.1.rc2.15.g465b3, "git repo-config -l" shows:

	core.filemode=false
	core.logallrefupdates=true
	core.compression=9
	diff.color=auto
	pack.window=64
	merge.summary=true
	core.repositoryformatversion=0
	core.filemode=false
	core.bare=false

Here is the output of that script:

Initialized empty Git repository in .git/
different output...
--------------------git status-------------
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: a
#
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
#
# modified: a
#
--------------------git status . ----------
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: a
#
Created initial commit dc57cb444335e73ce3320c1e368765b1a92e3be5

 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 a

--------------------git status-------------
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: a
#
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
#
# modified: a
#
--------------------git status . ----------
fatal: Entry 'a' not uptodate. Cannot merge.

#1 lore raw
Quoted 1 line · Liu Yubao

I find "git status" and "git status ." have different output.

Think of "git status $ANY_ARGUMENTS" a preview of "git commit $ANY_ARGUMENTS". If you have local modifications, "git commit" and "git commit ." would do different things, so corresponding "git status" should give you different output.

By giving "." to git status, the latter form is asking what reminder message you would see in the commit log message buffer if you say "git commit ."