github remove a file from a commit

C++
git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch path_to_file" HEAD## Remove Files From Git Commit
## In order to remove some files from a Git commit, use the “git reset”
## command with the “–soft” option and specify the commit before HEAD.
git reset --soft HEAD~1

## Now that your files are in the staging area, you can remove them (or
## unstage them) using the “git reset” command again.
git reset HEAD <file>
git rm --cached <file>

## When you are done with the modifications, you can simply commit your
## changes again with the “–amend” option.
git commit --amend

## Check file is no longer in the list
git ls-files

## Then if you're happy, you can do your push...
git reset file-name
Source

Also in C++: