Karl
Karl

Reputation: 14974

Why doesn't git diff work on the command line for me?

Every piece of documentation I've read on git (including the online book and the built-in help) says I can type "git diff" from command line, but whenever I do that I get:

usage: git diff [--no-index] <path> <path>

Here's what I've tried so far (all are examples from the documentation):

$ git diff
usage: git diff [--no-index] <path> <path>

$ git diff HEAD
usage: git diff [--no-index] <path> <path>

$ git diff --
usage: git diff [--no-index] <path> <path>

$ git diff -- .
usage: git diff [--no-index] <path> <path>

$ git diff --stat
usage: git diff [--no-index] <path> <path>

$ git --version
git version 1.7.1

Am I missing something here?

Upvotes: 8

Views: 5657

Answers (3)

labratmatt
labratmatt

Reputation: 1841

Are you working in a git repository? If you do a git status, do you get something close to the following?

> $ git status
> # On branch develop.new_feature
> # Changed but not updated:
> #   (use "git add <file>..." to update what will be committed)
> #
> # modified:   feature
> # modified:   www/jkll.jsp
> #
> # Untracked files:
> #   (use "git add <file>..." to include            ...

Upvotes: 1

araqnid
araqnid

Reputation: 133512

Are you actually inside a directory with a Git repository when you're running these? (git rev-parse --git-dir) The command needs to be able to find the repository and determine what your working tree is in order to produce useful output. Otherwise (if a repository cannot be identified), it defaults to being a plain recursive-diff command, and needs two paths to operate.

Upvotes: 11

Femaref
Femaref

Reputation: 61437

Use git diff --no-index. The [] means the argument is optional.

Upvotes: 0

Related Questions