A PCRE internal error occured. This might be caused by a faulty plugin

====== Differences ====== This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
packages:git [2014/05/30 00:36]
admin [Server Side Install]
packages:git [2015/05/24 18:45] (current)
admin [Creating Your Local git Copy]
Line 19: Line 19:
 ---- ----
 <​code>​ <​code>​
-sudo apt-get update +sudo apt-get update 
-sudo apt-get install git+sudo apt-get install git 
 +</​code>​ 
 + 
 +=== Create git user and repository === 
 +<​code>​ 
 +> sudo adduser git 
 +Adding user `git' ... 
 +Adding new group `git' (1001) ... 
 +Adding new user `git' (1001) with group `git' ... 
 +Creating home directory `/​home/​git'​ ... 
 +Copying files from `/​etc/​skel'​ ... 
 +Enter new UNIX password:  
 +Retype new UNIX password:  
 +passwd: password updated successfully 
 +Changing the user information for git 
 +Enter the new value, or press ENTER for the default 
 + Full Name []:  
 + Room Number []:  
 + Work Phone []:  
 + Home Phone []:  
 + Other []:  
 +Is the information correct? [Y/n] Y
 </​code>​ </​code>​
  
-=== Create git repository === 
 Create the main repository for git projects: Create the main repository for git projects:
 <​code>​ <​code>​
Line 29: Line 49:
 > cd $HOME > cd $HOME
 > mkdir <​git-projects>​ > mkdir <​git-projects>​
-> chmod 2775 <​git-projects>​ && cd <​git-projects>​+> chmod 2775 <​git-projects>​
 </​code>​ </​code>​
  
Line 56: Line 76:
 </​code>​ </​code>​
  
 +=== Using RSA keys for login ===
 +To avoid having to enter a password each time the <​gituser>​ logs in to the server, we'll register it's public RSA id key into the **.ssh/​authorized_keys** file:
 +
 +First you'll have to receive the public from each one of your intended users. The public key of a user generally resides in a pair of files, under your **$HOME/​.ssh** directory, named something and something.pub,​ where the something is usually id_dsa or id_rsa. The .pub file is your public key, and the other file is your private key. If you don’t have these files (or you don’t even have a .ssh directory), you can create them by running a program called ssh-keygen, which is provided with the SSH package on Linux/Mac systems and comes with the MSysGit package on Windows:
 +
 +To create a new pair of keys (on your local machine):
 +<​code>​
 +> mkdir $HOME/.ssh
 +> cd $HOME/.ssh
 +> ssh-keygen
 +</​code>​
 +
 +Then copy the content of the **$HOME/​.ssh/​id_rsa.pub** file to the **/​home/​git/​.ssh/​authorized_keys** file on the server.
 +
 +The user should now be able to login to the server using ssh without having to enter a password.
 ---- ----
 ==== Creating a Shared git Project Repository ==== ==== Creating a Shared git Project Repository ====
Line 61: Line 96:
 Login to the server and init a bare repository: Login to the server and init a bare repository:
 <​code>​ <​code>​
-> ssh gituser@my.server.tld+> ssh <gituser>@my.server.tld
 > cd /​home/​git/<​git-projects>​ > cd /​home/​git/<​git-projects>​
-> mkdir <​project-1.git> +> mkdir <​project-name.git> 
-> cd <​project-1.git>+> cd <​project-name.git>
 > git init --bare > git init --bare
 </​code>​ </​code>​
Line 82: Line 117:
 </​code>​ </​code>​
  
-ON WORKSTATION+---- 
 +==== Creating Your Local git Copy ==== 
 +----
  
-> cd /Users/thibaut/​Documents/apache2/MAMP_htdocs/osoleil+<​code>​ 
 +> cd /home/<​username>​/path/to/project
 > git init > git init
-> git remote add web jcarlosd_los_ssh@www.lundiosoleil.com:/var/www/www.lundiosoleil.com/​private/website.git +> git remote add <​staging>​ <​gituser>​@my.server.tld:/home/git/<​git-projects>​/<​project-name.git> 
-> git add file1 file2 dir/* +> git add <file1> <file2> <dir/*> 
-> git commit -m "​Initial commit"​ +> git commit -m <"​Initial commit"​> 
-> git push web +master:​refs/​heads/​master+> git push <​staging> ​+master:​refs/​heads/​master 
 +</​code>​ 
 + 
 +To update an existing remote: 
 + 
 +<​code>​ 
 +> git remote set-url <​staging>​ <​gituser>​@my.newserver.tld:/​home/​git/<​git-projects>/<​project-name.git>​ 
 +</​code>​ 
 + 
 +---- 
 ==== Useful Git Commands ==== ==== Useful Git Commands ====
 +----
 It isn't in the scope of this article to help you learn Git, although here are a few commands that prove themselves useful in the course of my development experience It isn't in the scope of this article to help you learn Git, although here are a few commands that prove themselves useful in the course of my development experience
  
 <wrap todo>TO BE COMPLETED</​wrap>​ <wrap todo>TO BE COMPLETED</​wrap>​