Skip to content

U fajlu

.gitignore

navodimo putanje do fajlova i foldera koje treba na nivou projekta isključiti iz Gita. U fajlu

.git/info/exclude

možemo da navedemo putanje do fajlova i foldera koje treba lokalno isključiti iz Gita. Ako nam je Git već uhvatio izmenu na nekom od fajlova koje treba ignorisati, kucamo

git update-index --skip-worktree fajl

Za početak:

git clone <source> ~/projekat
cd ~/projekat
composer update
git clone https://github.com/laravel/homestead.gt ~/Homestead
cd ~/Homestead
git checkout v7.4.2
bash init.sh

Zatim editujemo ~/Homestead/Homestead.yaml u nešto poput ovog:

---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: ~/projekat
      to: /home/vagrant/code

sites:
    - map: projekat.local
      to: /home/vagrant/code/public

databases:
    - homestead

Nakon toga je potrebno dodati zapis u datoteku /etc/hosts:

192.168.10.10 projekat.local

I za kraj iz ~/Homestead direktorijuma pokrećemo virtuelnu mašinu:

vagrant up

Najpre kreiramo prazan direktorijum, npr. ~/abs/naziv_paketa i u njega snimimo fajl PKGBUILD. Fajl PKGBUILD sadrži sve informacije koje su potrebne da bi se jedan program kompajlirao i instalirao. Šablon možemo da kopiramo sa /usr/share/pacman/PKGBUILD.proto a ovde imamo primer PKGBUILD fajla za paket cutmp3:

# Maintainer: Petar Benke <makepkg@benke.co.uk>
pkgname=cutmp3
pkgver=3.0.1
pkgrel=1
pkgdesc="Edit mp3 (and mp2) files without quality loss"
arch=('i686' 'x86_64')
url="http://www.puchalla-online.de/cutmp3.html"
license=('GPL')
depends=('readline')
source=("http://www.puchalla-online.de/$pkgname-$pkgver.tar.bz2")
md5sums=('SKIP')

build() {
    cd "$pkgname-$pkgver"
    make
}

package() {
    cd "$pkgname-$pkgver"
    make PREFIX="$pkgdir/usr" install
}

Da bismo kreirali paket potrebno je da pokrenemo program makepkg. makepkg će, prateći instrukcije iz fajla PKGBUILD, preuzeti izvorni kod programa, proveriti zavisnosti, kompajlirati program i napraviti paket u tekućem direktorijumu. Fajl sa upravo kreiranim paketom ima naziv oblika

pkgname-pkgver.pkg.tar.xz

Možemo ga instalirati sa pacman -U pkgname-pkgver.pkg.tar.xz. i uveriti se da sve radi kako treba. Takođe pomoću programa namcap možemo izvršiti provere fajla PKGBUILD i samog paketa:

namcap PKGBUILD
namcap pkgname-pkgver.pkg.tar.xz

namcap će prijaviti npr. ako naiđe na neke zavisnosti koje nisu zadovoljene.

Kada se uverimo da je sve kako treba, možemo da postavimo paket na AUR. Najpre je potrebno otvoriti nalog na AUR-u a zatim na lokalnom računaru kreiramo par SSH ključeva:

ssh-keygen -f ~/.ssh/aur

nano ~/.ssh/config

Host aur.archlinux.org
IdentityFile ~/.ssh/aur
User aur

Javni ključ ~/.ssh/aur.pub je potrebno kopirati u predviđeno polje na AUR-u u okviru vašeg malopre kreiranog naloga.

Paket se postavlja na AUR tako što se lokalno klonira prazan Git repozitorijum, dodaju se fajlovi PKGBUILD i .SRCINFO pa se to onda sve pušuje natrag:

git clone git+ssh://aur@aur.archlinux.org/naziv_paketa.git
makepkg --printsrcinfo > .SRCINFO
git add PKGBUILD .SRCINFO
git commit -m "First commit"
git push

Sada bi trebalo da možemo da instaliramo naš paket direktno sa AUR-a:

aurget -S naziv_paketa

Arč viki: kreiranje paketa
Arč viki: postavljanje na AUR

START

git config --list
cd code/projekat
git init
git status
git remote add origin https://petar.benke@devel.server.rs:8443/gitblit/git/projekat.git
git remote
git config http.sslVerify false
git fetch origin
git checkout master

FORKOVANJE SA GITHUB-A

cd projects
git config --list
git clone https://github.com/pbenke/windows-10-off.git
cd windows-10-off
git status

KONKRETAN PRIMER: STATISTIKA

git config --list
git config --local http.sslVerify false ili GIT_SSL_NO_VERIFY=1 git clone ...
git remote add origin https://petar.benke@devel.server.rs:8443/gitblit/git/projekat.git
git push origin master
git clone https://petar.benke@devel.server.rs:8443/gitblit/git/projekat.git
git remote -v
git status
git add ...
git commit -m "..."
git push origin master
git fetch
git diff master origin/master
git pull origin master ili git merge origin/master
origin = izvor
master = lokalni master
origin/master = izvorni master

UNDO COMMIT

git show HEAD
git checkout HEAD filename
git reset HEAD filename -> unstage file
git reset SHA -> brisanje komita

GRANE

git branch

git branch invoices
git checkout invoices

ili

git checkout -b invoices

git branch

...

git checkout master
git merge invoices