The link is generated when the server parses the php that says “create a list of pages” or of categories or whatever.
If you want to manually create a link to your home page – which is typically set in the admin’s settings under “Reading” and you select a WordPress “Page” (static post versus a post in a category) the file that is used IS page.php
The sidebar, when it lists all your pages uses a function named wp_list_pages() which takes additional information, depending upon what you want to display, like whether or not there’s a title for the list or how it’s ordered or what to include or exclude, etc. See the documentation for wp_list_pages() by using the search tool in the documentation section.
In the default theme for WordPress installs, that list is in the sidebar.php file… but you won’t see a “home.php” file listed, just the function that makes a call to the database to find out what to list, based on the page-slug.
When you create a new Page in WordPress in the admin, a page slug is created. This is the “link” name of the file, typically generated on a cleaned-up version of whatever title you gave the page. Note, you CAN edit the slug. If you are using the latest versions of WordPress, you need to click on the Screen Options tab at the top right of the Write/Edit page and check the page slug option to see it. It’s NOT on by default, go figure.
It’s hard not to get technical when trying to explain how WP works… it’s really a GREAT idea to read the basic documentation for WordPress, especially Stepping into Templates and the specific pages about wp_list_categories() and wp_list_pages() and about the WordPress Loop. It’s key to understanding how to get what you want.
HTH