Git relies on the fact that SSH allows you to execute commands on a remote server.
If you run a command like git clone email@example.com:username/repo, what Git is doing behind the scenes is SSHing to github.com, authenticating as the tom user, and then remotely executing git upload-pack username/repo. Now your client can talk to that process on the remote server by simply reading and writing over the SSH connection.
Of course, allowing arbitrary execution of commands is unsafe, so SSH includes the ability to restrict what commands can be executed. In a very simple case, you can restrict execution to git-shell which is included with Git. All this script does is check the command that you’re trying to execute and ensure that it’s one of
git receive-pack, or
So the syntax is:
ssh git@<route> <command> <arg>
$ ssh firstname.lastname@example.org "git-upload-pack username/repo.git"
$ ssh email@example.com "git-receive-pack username/repo.git"
So to answer to your question, you can't edit the code over ssh, but you can upload your changes if you know the right syntax.
If you would like to trace which commands are sent to the git server, follow your git command by GIT_TRACE=1 i.e.:
GIT_TRACE=1 git clone firstname.lastname@example.org:username/repo.git
or (Git 2.3.0+):
GIT_SSH_COMMAND="ssh -vv" git clone email@example.com:username/repo.git
Or for the hardcode mode, use strace like:
strace -f -s200 -e execve git clone firstname.lastname@example.org:username/repo.git
See also the following articles: