Git-repo

For vanlig bruk, se Git.

Git-repo hostet på cassarossa

Dersom en ønsker å hoste Git-repoer på cassarossa, kan følgende oppskrift være nyttig for å få repoene satt opp rett mtp. at flere personer i samme gruppe skal skrive til repoet uten unødvendig kluss:

mkdir /home/cassarossa/itk/felles/git/prosjekt
cd /home/cassarossa/itk/felles/git/prosjekt
git init --bare --shared=group
# Lage commit hooks for sending av mail etter commit.
cd hooks
ln -s /home/cassarossa/itk/felles/git/post-receive post-receive
# Få commit hooks inn i config
git config --add hooks.mailinglist "itk-commits@samfundet.no" (fellesliste for mindre prosjekter, mdb og billig har gjerne dedikert mailingliste) 
git config --add hooks.emailprefix "[prosjekt]"
Legg gjerne til en liten beskrivelse av prosjektet i /home/cassarossa/itk/felles/git/prosjekt/description da denne teksten vil vises i gitweb siden.

Git-repo for utvikling

En kan så enten clone repoet:

# Der en har cassarossa NFS-montert:
git clone /home/cassarossa/itk/felles/git/prosjekt

# Eller via SSH:
git clone bruker@cassarossa.samfundet.no:/home/cassarossa/itk/felles/git/prosjekt

Eller, en kan legge til cassarossa-repoet som en remote (her kalt "cass") i et eksisterende repo:

git remote add cass bruker@cassarossa.samfundet.no:/home/cassarossa/itk/felles/git/prosjekt

For å sende commit epost må følgende gjøres:

ln -s /home/cassarossa/itk/felles/git/post-commit-email .git/hooks/post-commit
git config --add hooks.mailinglist "itk-commits@samfundet.no"
git config --add hooks.emailprefix "[prosjekt]"

For så å pushe kode fra den lokale "master"-branchen til cassarossa-repoet:

git push cass master

Dersom en ønsker å bruke bare git push uten ytterligere argumenter så kan cassarossa-repoet settes opp som default upstream:

# For å få informasjon om alle remote branches lokalt:
git fetch --all

# Gjør "cass/master" (les: branchen "master" på remoten "cass")
# til upstream for den lokale branchen "master"
git branch --set-upstream master cass/master

# Profit!
git push

Git-repo for produksjonssetting

Når en skal bruke Git-repoer for produksjonssetting er det fint om alle i gruppen kan dra inn oppdateringer uten å få problemer med eierskap til filer. For å få dette til å fungere smertefritt burde ikke repoet opprettes med en vanlig git clone, men heller på tilsvarende vis som vi lager delte repoer på cassarossa:

# Nytt ikke-bare repo delt mellom alle i itk-gruppen
mkdir /var/www/samfundet.no/prosjekt
cd /var/www/samfundet.no/prosjekt
git init --shared=group

# Legg til ønskede remotes
git remote add cass /home/cassarossa/itk/felles/git/prosjekt
git remote add github git@github.com:itkinside/prosjekt.git

# Fetch informasjon fra remotes
git fetch --all

# Sett om ønsket en default upstream for enkel pull/push-bruk
git branch --set-upstream master cass/master

# Merge inn ønsket state fra en av remotene, slik at working dir får noe innhold:
git merge cass/master

Git-repo hostet på GitHub

ITK er registrert som en organisasjon på GitHub, med offentlig profil på https://github.com/itkinside. En stor mengde ITK-ere har "owner"-tilgang til organisasjonen gjennom sine personlige GitHub-brukere. Huk tak i én av disse dersom du vil ha tilsvarende tilgang, for bl.a. å kunne opprette nye Git-repoer på GitHub-organisasjonen vår.

For å komme i gang med GitHub, se http://help.github.com.

Git-repo hostet begge steder

Dersom en har prosjekter som er hostet både på GitHub og på cassarossa, så kan en ha to remotes på samme Git-repo, for slik å kunne pulle fra og pushe til begge steder:

git remote add github git@github.com:itkinside/prosjekt.git
git remote add cass bruker@cassarossa.samfundet.no:/home/cassarossa/itk/felles/git/prosjekt

For å hente alle data fra begge remotes:

git fetch --all

Eller fra én:

git fetch github

For å pushe den lokale "master"-branchen til begge steder:

git push github master
git push cass master

For å merge inn siste endringer i "master"-branchen fra GitHub:

git merge github/master

Lenker: Start, git, pst

Mail: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2011-11-11 11:07 | Revisjon: 9 (historie, blame) | Totalt: 1444 kB | Rediger