diff options
Diffstat (limited to 'git.html')
| -rw-r--r-- | git.html | 190 |
1 files changed, 0 insertions, 190 deletions
diff --git a/git.html b/git.html deleted file mode 100644 index 951e8d1..0000000 --- a/git.html +++ /dev/null @@ -1,190 +0,0 @@ -<!DOCTYPE html> -<html lang=en> - <head> - <title>Hosting Your Own Git Repositories – LandChad.net</title> - <meta charset="utf-8"/> - <link rel="shortcut icon" href="favicon.ico" type="image/x-icon" /> - <link rel='stylesheet' type='text/css' href='style.css'> - <meta name="viewport" content="width=device-width, initial-scale=1"> - <link rel='alternate' type='application/rss+xml' title='Land Chad RSS' href='/rss.xml'> - </head> -<body> - <header><h1>Hosting Your Own Git Repositories</h1></header> - <nav></nav> - <main> - <img class=titleimg src="pix/git.svg"> - <p> - Once you have your own VPS or other Internet-available server, you can - start hosting your own git repositories. The goal of this tutorial is - for you to go from</p> - - <pre><code>git clone github.com/...</code></pre> - - <p>to</p> - - <pre><code>git clone YourLandChadDomainName.xyz/...</code></pre> - - <p> - so you can cultivate your own homegrown, grass-fed code, rather than - relying on a centralized proprietary service like GitHub. - </p> - - <h2>Installing git</h2> - - <p> - You most likely already have it installed on your server, but if not, - run:</p> - - <pre><code>apt install git</code></pre> - - <p> - We don't need any additional software, <code>git</code> itself ships - with everything needed to host a remote repository! - </p> - - <h2>Creating bare repositories</h2> - - <p> - For each repository you want to host, you will need to manually create - what's called a "bare" repository on your server. These hold all the - commits and any other git data needed for your repository, but without - an expanded "index" in which you can just browse all the files of a - certain commit in the file system. - </p> - - <p> - These repositories need to be owned by the <code>git</code> user, and - you should probably pick a directory where you will store them all. One - sane choice is under <code>/srv/git/</code>, and we will use this as the - example directory for the rest of the tutorial, but any other path will - do as well. - </p> - - <h3>Become the git user and create the directory</h3> - - <p> - If you're logged in to your server as root and have <code>git</code> - installed, you can become the <code>git</code> user by executing - </p> - - <pre><code>su git</code></pre> - - <p> - Now navigate to/create your desired directory, for example - </p> - - <pre><code>cd /srv -mkdir git</code></pre> - - <h3>Create the repo</h3> - - <p> - Now you can create the bare repository with - </p> - - - <pre><code>git init --bare my-repo.git</code></pre> - - <p> - By convention, bare repository names end with ".git". - </p> - - <p> - Repeat the above command for any other repositories you want to host. - </p> - - <h2>Syncing local repositories with your server</h2> - - <h3>Set up SSH login for the git user</h3> - - <p> - You will need to be able to login remotely via <code>ssh</code> as the - <code>git</code> user we've used before. To do this, you will either - need to set up a password for the <code>git</code> user by running - <code>passwd git</code>, - or copy your public SSH key from your local machine to - <code>/home/git/.ssh/authorized_keys</code>. - See the <a href="sshkeys.html">SSH keys instructional</a> for details - (just log in as <code>git</code> instead of <code>root</code>). - </p> - - <h3>Syncing a new repository with your server</h3> - <p> - If you've just created a new repository on your local machine, you will - need to tell <code>git</code> where the remote repository is to be able - to sync with it (using commands like <code>git push</code> or - <code>git pull</code>). We do this by defining a "remote" for your - repository. - </p> - - <p> - A remote is just a named URL remembered in your repo's configuration. So - we need a name and a URL. By convention, the "main" remote is called - "origin". The URL has the format <code>user@host:path</code>, where: - </p> - - <ul> - <li> - <code>user</code> is <code>git</code>, the <code>git</code> user - we've already worked with before. - </li> - <li> - <code>host</code> is your domain name. - Alternatively you could even use your server's raw IP address. - </li> - <li> - <code>path</code> is the absolute path to the repository on the - server, in our example <code>/srv/git/my-repo.git</code> - </li> - </ul> - </p> - - <p> - So, to create a new remote, run: - </p> - - <pre><code>git remote add origin git@yourdomain.xyz:/srv/git/my-repo.git</code></pre> - - <p> - Now you'll be able to run <code>git push origin master</code> to push - your commits or <code>git pull origin</code> to pull from the remote. - </p> - - <h3>Syncing an existing repository</h3> - - <p> - If you've already set up your local repository to sync with a service - like GitHub it probably already has a remote called "origin". You can - see your repo's remotes with: - </p> - - <pre><code>git remote -v</code></pre> - - <p> - You can follow the above instructions, substituting an arbitrary other - name other than "origin" to create a differently named remote, e.g. - </p> - - <pre><code>git remote add vps git@...</code></pre> - - <p> - Now you'll be able to push/pull with <code>git push vps master</code> - and <code>git pull vps</code>, respectively. - </p> - - <p> - Or, to completely sever ties with your centralized git provider, first - remove the original origin with: - <code>git remote remove origin</code> - and then follow the instructions as above. - </p> - - <h2>Contribution</h2> - <ul> - <li>Martin Chrzanowski -- <a - href="https://m-chrzan.xyz">website</a>, <a href="https://m-chrzan.xyz/crypto.html">donate</a></li> - </ul> - </main> - <footer><a href="https://landchad.net">LandChad.net</a></br>Because Everyone should be an Internet LandChad.</br><a href="index.html"><li><img src="pix/chad.gif" alt="chad"></li></a><a href="rss.xml"><li><img src="pix/rss.svg" alt="RSS"></li></a><a href="pix/btc.png"><li><img src="pix/btc.svg" alt="BTC"></li></a><a href="pix/xmr.png"><li><img src="pix/xmr.svg" alt="XMR"></li></a><a href="https://github.com/lukesmithxyz/landchad"><li><img src="pix/git.svg" alt="Github"></li></a></footer> -</body> -</html> |
