Question: When inside a git repository in Powershell or CMD, issuing

`git mv * whatever`

will return

> 
> fatal: bad source, source=\*, destination=whatever
> 
> 
> 

This works fine when using MSYS (Git Bash).

Answer: 
As has been pointed out by others in this thread, the star does not automatically expand to file names in PowerShell. Thus, the command let `get-childItem` needs to be used, which explicitely tells PowerShell to expand wildcard characters.

You want to put the result of `get-childItem *` into parentheses so that they are expanded before the entire `git mv` command is executed:

```
git mv (get-childItem *) whatever

```

To save a few key strokes, you might want to use the alias `gci` for `get-childItem`:

```
git mv (gci *) whatever

```
Using PowerShell to move the content of `source` to `whatever` folder you can run this command:

```sh
Get-ChildItem .\source\ | ForEach-Object { git mv $_.FullName .\whatever\ }

```

Your directory structure would look like this before:

```
+--C:\code\Project\
|
+----+bootstrap.py
+----+requirements.txt
+----+.gitignore
+----+source
|
+---------+manage.py
+---------+modules
+---------+templates
+---------+static
+----+whatever
|
+---------+cool.py

```

And after running would look like this:

```
+--C:\code\Project\
|
+----+bootstrap.py
+----+requirements.txt
+----+.gitignore
+----+source
+----+whatever
|
+---------+cool.py
+---------+manage.py
+---------+modules
+---------+templates
+---------+static

```