arki-teki

mic bloc-notes mai mult sau mai puțin tehnic

Git LFS

  • git-lfs nu funcționează cu sistem de fișiere local -- nu se poate face git push către un repository din sistemul local de fișiere (fie el pe hard-discul local sau un folder partajat de pe un server de fișiere montat local);
  • git-lfs nu funcționează cu un repository remote care e denumit altfel decât origin (asta mai trebuie să o probez).
Acestea fiind clare pașii ar fi următorii: 1. În folderul proiectului se execută `git init` pentru inițializarea depozitului git local. 2. Pe server se execută `git init --bare ` pentru inițializarea depozitului _remote_. 3. Local și pe server, în directorul de proiect respectiv, se execută `git lfs install` care face setările necesare pentru sistemul de fișiere mari. 4. Local se setează tipul de fișiere mari care vor fi „avute în grijă” de sistemul `lfs` prin comanda `git lfs track '*.ext'` unde `ext` este extensia dorită (de ex. `.psd` sau `.dwg`). Se creează un fișier `.gitattributes` care poate fi editat direct pentru adăugarea/ eliminare altor extensii. Fișierul trebuie adăugat la depozit: `git add .gitattributes`. Și se „comite” totul: `git commit -m "Inițial/ sau alt comentariu adecvat"`. 5. Se face legătura cu depozitul _remote_: `git remote add `. Cred că `` trebuie să fie `origin` ca să funcționeze cu `lfs` iar `` poate fi calea către un director montat local sau către un director accesat prin `ssh` (dar apoi trebuie urmați pașii care indică o cale `https` pentru sistemul `lfs`) sau o cale `https` (presupun, nu am încercat deocamdată, că atunci pașii specifici pentru `lfs` nu mai trebuie urmați).

O alternativă la această succesiune de pași - excluzând partea cu lfs - ar fi cea descrisă în manualul GitPro:

$ git clone --bare my_project my_project.git
Cloning into bare repository 'my_project.git'...
done
$ scp -r my_project.git user@git.example.com:/srv/git #se face o copie pe server
$ ssh user@git.example.com
$ cd /srv/git/my_project.git
$ git init --bare --shared #se setează depozitul de pe server pentru lucrul în echipă

  1. Se stabilește URL-ul pentru lfs:
git config -f .lfsconfig lfs.url https://<domeniuserver.tld>/<calea-repository>/info/lfs
git add .lfsconfig
  1. Se „împinge” totul pe server: git push -u <nume-remote> <nume-ramură-locală>.

Cam asta e...