arki-teki

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

Un depozit `git` nou

(Atât pe Windows cât și pe Linux am un folder local în care lucrez și un folder remote în care fac backup pe server (linux). Folderul remote este accesat prin samba ca un folder montat local. Drept GUI pentru Git folosesc GitAhead.)

După ce încep să lucrez în folderul local, la un moment dat, inițializez depozitul git:

  • CLI: git init [folderul-depozitului-meu];
  • GUI: File -> Initialize New Repository.

Pentru a crea versiunea remote a depozitului:

  • CLI (variantele sunt de pe Stackoverflow - primele două cele mai votate răspunsuri):
    1. git init --bare [folderul-depozitului-meu.git] în folderul de pe server (cel montat cu samba); în folderul local: git remote add origin [calea\samba\către\folderul-depozitului-meu.git] (pentru a lega folderul local de cel de pe server); apoi git push origin master (pentru a salva pe server etapele de lucru locale) SAU
    2. git clone --bare [calea\samba\către\folderul-depozitului-meu.git]; apoi git remote add origin [calea\samba\către\folderul-depozitului-meu.git]; și git fetch (ca să verific că totul e în ordine).
  • GUI:
    • File -> Clone Repository în folderul de pe server montat cu samba cu aceeși denumire ca cel local plus extensia .git și la opțiunile Advanced bifez Create a bare repository;
    • apoi în depozitul local Remote -> Configure Remotes... și acolo adaug depozitul remote proaspăt creat;
    • Remote -> Fetch ca să verific că totul e OK.

Setări touchpad laptop (Linux)

Pentru descrierea în detaliu vezi wiki archLinux.

Pentru BunsenLabs (bazat pe Debian) am introdus în fișierul ~/.config/bunsen/autostart

synclient VertScrollDelta=-109 HorizScrollDelta=-109 HorizTwoFingerScroll=1 PalmDetect=1 TapButton1=1 2>/dev/null

Valorile negative de la ...ScrollDelta schimbă sensul de scroll; PalmDetect ar trebui să detecteze (și să ignore) atingerile accidentale cu palma.

synclient -l afișează setările curente pentru toți parametrii configurabili.

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 <nume-director.git> 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 <nume-remote> <url_remote>. Cred că <nume-remote> trebuie să fie origin ca să funcționeze cu lfs iar <url-remote> 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...