Question: i want to commit my changes, but git hangout, when i run

```
git add .

```

i rerun it using -v option, then i get

```
add 'dev/less/module/basic-structure/eo-featured.less'
add 'dev/less/module/page-content/content/.eo-cv.less.swo'

```

am using vim, that's why i guess that .swo file, i don't know what that is, but i don't need it, so i run:

```
git rm dev/less/module/page-content/content/.eo-cv.less.swo

```

the result was

```
fatal: pathspec 'dev/less/module/page-content/content/.eo-cv.less.swo' did not match any files

```

any ideas ?

Answer: 
your swo file is very likely created by vim, so called swap file. In vim, you can `:h swap` to check details.

If you don't want vim to generate swap file, you can set the option:

```
set noswf

```

You got error msg when you tried to "delete" the swo file, because, the file hasn't been tracked by git yet, you used `git rm ...`. You should use `rm ...file` to remove it. In fact, if you start/close your vim normally, you don't have to manually remove the swap file. Vim will delete it after you quit vim. 

So, you can either set the above option, avoid createing swap file. or add an entry in `.gitignore` to let git ignore those files.
The `.swo` file isn't tracked by git (unless you already added it in the past), this is why you can't use `git rm` (which only tells git to stop tracking the files).

You just don't want to stage it when using `git add`, and you have two ways to do that:

1. Giving only the files you really want to stage to `git add` (instead of of `.`)
2. Writing `*.swo` to your `.gitignore` file (which you can create if it doesn't exist).