Table of Contents

Git

git bare

Very simple system to host a personnal git repository

Server

Send keys

ssh myuser@server.com
mkdir .ssh
scp ~/.ssh/id_rsa.pub myuser@server.com:.ssh/authorized_keys

Add user

sudo adduser git

Add key

mkdir /home/git/.ssh
sudo cp ~/.ssh/authorized_keys /home/git/.ssh/
sudo chown -R git:git /home/git/.ssh
sudo chmod 700 !$
sudo chmod 600 /home/git/.ssh/*bash

Change the git user shell

sudo nano /etc/passwd

git:x:1002:1003:,,,:/home/git:/usr/bin/git-shell

Create repo

cd /home/git/repos
mkdir myrepo.git
cd !$
git --bare init
cd ..
chown -R git:git myrepo.git

Client

mkdir myrepo
cd myrepo
git init
git remote add origin git@server.com:repos/myrepo.git
git add *
git commit -am "First commit"
git push origin master:refs/heads/master

delete all tags

rm .git/refs/tags -rf

merge from other repo

http://help.github.com/send-pull-requests/

http://gitref.org/remotes/

or

git checkout mybranch
git remote add remotename git://github.com/user/repo_to_synchro.git
git fetch remotename
git merge remotename/mybranch
git push origin mybranch

patch from specific commit

git checkout master
git format-patch -1 --stdout 1842388bb4dcf5ecd57732ffa877b6ca1a3dec7b > profiles.patch
git checkout mybranch

git apply --stat profiles.patch
or
patch -p1 < profiles.patch

stage multiple deleted files

When deleting files without git and then trying to commit changes, git is asking me to remove files using : git rm ….

But when having a lot of files, i can not rm them one by one.

The magic sentence to use is : git add -u

ssh config

.ssh/config

Host github.com
        HostName github.com
        User git
        IdentityFile ~/.ssh/id_rsa-github

,