Setting up Git on Centos
In this tutorial, I am showing how to setup GIT on Centos with SSH .
Packages to be installed :
yum install git-core gitosis
Create user and group which will own the repositories :
useradd -d /path/to/repositories gituser
Generate or copy a ssh key for use with git :
su gituser
ssh-keygen -t rsa
Now initialize the gitosis :
gitosis-init < /path/to/ur/sshPrivateKey
Be safe by changing permissions on the post update :
sudo chmod 755 /path/to/repositories/gitosis-admin.git/hooks/post-update
Clone the gitosis-admin repo into your local machine :
git clone gituser@yourServer:gitosis-admin.git
Now you should have gitosis.conf and keydir/ in your gitosis-admin directory.
Creating New Repositories :
Now is the time to create a new Repository (eg. testrepo)
Open up the gitosis.conf and see the default configuration :
vi gitosis.conf
[gitosis] [group gitosis-admin] writable = gitosis-admin members = gitUser
Now to Create a new repo, we just authorize writing to the repo and push the changes . Add the following to the gitosis.conf file :
[group mydevel] members = user1@hostname user2@hostname writable = repoName
Save the changes commit and push it to the server :
git commit -a -m "New users to the repo repoName" git push
Now create the repository and initialize it :
mkdir repoName
cd repoName git init git remote add origin gitUser@serverName:repoName.git
Now create some files , save changes, add to repo. If you want to add existing files then you can use * to represent all files:
git add fileName
or
git add *
Now commit & push to the origin
git commit –a –m “Initializing new Repo”
git push origin master:refs/heads/master
Adding Users to the Repo :
In order to add users, first get their key file and put them in the key dir folder. Please note that all keys must have .pub extension and the username is anything before .pub
Example :
cd gitosis-admin cp ~/newUser1.pub keydir/ cp ~/newUser2.pub keydir/ git add keydir/newUser1.pub keydir/newUser2.pub
Now add the members to the list and commit changes :
git commit -a -m "Created New users newUser1 and newUser2" git push
Now they can clone and start working on the project :
git clone newUser1@gitServer:testRepo.git
Configure Public access to the repo :
git-daemon --base-path=/path/to/repo/to/grantaccess/ --export-all
Note : In windows, you can use tortoise Git, you can save the session in putty and use the session name in stead of hostname in the commit and clone operations.
In unix , you can use non standard port by creating ssh config file :
http://www.mylinuxguide.com/handling-multiple-ssh-keys-and-ports-for-multiple-machines/