For github.com your ~/.ssh/config
might look like this
Host github.com
IdentityFile ~/.ssh/key_name_for_github
For hostname: as man says it allows you to specify abbreviation for host.
For example, if your ~/.ssh/config
look like this
Host host1
HostName host1.example.com
Host host2
HostName anotherdomain.com
Then when you type
ssh host1
you actually login to host1.example.com
ssh host2
login to anotherdomain.com
ssh host1
you actually login to host1.example.comssh host2
login to anotherdomain.com