Now I have a git repository on a Windows machine, and would like to run automatic tests on this repository with Perl. To make sure that every time I launch the test the repository is the latest, I use:

```
system("git pull");

```

before the test.

But it returns an error: 

```
fatal: Uh oh. Your system reports no Git commands at all.

```

However, when I run `git show` with the same methodology, like:

```
system("git show");

```

The output is OK, which is to say Windows command prompt recognized the `git` command (and it does exist in system PATH). So why some of the git commands could succeed while the others can't?

PS: I'm using `Git Bash`, if I launch the Perl script from git bash, both `git pull` and `git show` work. But my expectation is to double click the perl script to run it instead of calling it from `Git Bash` shell.