It might wonder many, but actually one can push a Git Repo in shared hosting environment, that is great to do many advanced works. Here is how. Previously we talked about how to SSH to Shared Hosting Server with non-sudoers™ privilege, Shared Server is good choice for parking the domains “ now, if you can use it as Git Repo or push Git, frankly you are getting the maximum out of what you are paying for.
How to Use Git Repo In Shared Hosting Account : Basics You Need To Know
If you are new to Git and Version Control Software, you might be interested to read our articles and guides like Version Control in Details, Commonly used Terminologies in Revision Control and Git in Nutshell. For the sake of this guide, you should know something about symbolic link or symlink.
Keep in mind, in shared hosting, you’ll have kind of odd symlinks – the methods are specific for cPanel and we do not symlink in that way on a Cloud Server. Usually the user name home directory is already symlinked and the files of the domain which you used to register your account remains on the FTP root. This can give pain or mess-up. You should use proper .htaccess directives for the other add-on domains, otherwise funny things can happen.
---
How to Use Git Repo In Shared Hosting Account
We are giving example with Hostgator. SSH to your server in the way we have described in how to SSH to Shared Hosting Server with non-sudoers™ privilege guide.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # commands will have ~ or [~]# before, comments will have only leading hash ( # ) ~ ssh -p 2222 tcwmedia@140.258.189.20 # if you are login for the first time # or deleted the entry from known hosts file The authenticity of host '[140.258.189.20]:2222 ([192.254.189.28]:2222)' can't be established. RSA key fingerprint is bb:6a:51:b4:63:e8:3b:a1:c9:c8:29:3f:b9:1b:4e:49. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '[140.258.189.20]:2222' (RSA) to the list of known hosts. tcwmedia@192.254.189.28's password: # we have lodged in, do a pwd tcwmedia@freehealthfoundation.org [~]# pwd /home3/tcwmedia # this is maximum the upper level you can access tcwmedia@freehealthfoundation.org [~]# cd ~ |
Now, we will create a directory here :
1 2 3 4 5 6 7 8 9 10 11 12 13 | tcwmedia@freehealthfoundation.org [~]# mkdir -p git # go to the directory tcwmedia@freehealthfoundation.org [~]# cd git tcwmedia@freehealthfoundation.org [~]/git# /home3/tcwmedia/git tcwmedia@freehealthfoundation.org [~]/git# mkdir -p git-website.git # git-website is just a name tcwmedia@freehealthfoundation.org [~]/git# cd git-website.git tcwmedia@freehealthfoundation.org [~]/git/git-website# # initialize git tcwmedia@freehealthfoundation.org [~]/git/git-website# git -- bare init # output Initialized empty Git repository in /home3/tcwmedia/git/git-website/ |
Open a new session in command line tool you are using (iTerm2, Terminal etceteras) or open Git tools for Windows. We should now clone the new repository to our local computer :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # this is local computer # commands will have ~ in front of them, we are using Homebrew and iTerm2, # Oh My ZSH is the shell Last login: Tue Jul 8 00:15:25 on ttys000 ~ git clone ssh://tcwmedia@freehealthfoundation.org:2222/home3/tcwmedia/git/git-website.git # understand the command, it is # git clone ssh://your-domain-name-path:port/path/to/git # cd to the git ~ cd git-website # well you can use normal commands now # like git add -A * # like git commit -m "I love you 143" # like git push origin master # like git remote add git-website tcwmedia@freehealthfoundation.org:www/git-website |
Symlinking part is only if you want to host the git as website and it is located somewhere you can not directly add domain. Otherwise, quite practical thing – you can add a domain as add-on domain from cPanel and cd to that directory and initiate git. You should symlink in this way if you have created the git without adding domain :
1 | ln -s public_html/domain.com/ ./git-location |
You can add different account users (depends on host and plan) to allow git access.