Skip to content

Cum să clonezi un repository Git — Ghid complet

DodaTech Updated 2025-01-15 2 min read

In this tutorial, you'll learn about Cum să clonezi un repository Git. We cover key concepts, practical examples, and best practices.

În acest ghid vei învăța cum să clonezi un repository Git folosind diferite opțiuni precum --depth, --branch și --recursive pentru a controla ce și cum descarci.

The Problem

Ai nevoie să descarci un repository Git de la distanță, dar clonarea implicită descarcă întregul istoric și toate submodulele, ceea ce poate fi lent sau inutil pentru proiecte mari.

The Wrong Way

git clone https://github.com/user/project.git

Clonarea implicită descarcă întregul istoric al commit-urilor, ceea ce poate dura minute pentru proiecte cu mii de commit-uri.

The Right Way

# Clonare superficială (doar ultimele commit-uri)
git clone --depth 1 https://github.com/user/project.git

# Clonare cu un anumit branch
git clone --branch develop https://github.com/user/project.git

# Clonare cu toate submodulele
git clone --recursive https://github.com/user/project.git

Step-by-Step Fix

1. Clonează superficial cu --depth

Folosește --depth 1 pentru a descărca doar ultimul commit, fără istoric:

git clone --depth 1 https://github.com/user/project.git

Output:

Cloning into 'project'...
remote: Enumerating objects: 150, done.
remote: Counting objects: 100% (150/150), done.
remote: Compressing objects: 100% (100/100), done.
remote: Total 150 (delta 50), reused 80 (delta 30)
Receiving objects: 100% (150/150), done.

2. Clonează un branch specific

Pentru a clona doar un anumit branch:

git clone --branch feature-x https://github.com/user/project.git

3. Clonează cu submodule

Dacă proiectul are submodule, --recursive le descarcă automat:

git clone --recursive https://github.com/user/project.git

4. Combină opțiunile

Poți combina mai multe opțiuni:

git clone --depth 1 --branch main --recursive https://github.com/user/project.git

Prevention Tips

  • Folosește --depth 1 pentru CI/CD și pentru proiecte mari unde istoricul nu contează
  • Folosește --branch pentru a clona direct branch-ul de care ai nevoie
  • Folosește --recursive doar când ai nevoie de submodule
  • După o clonare superficială, poți adânci istoricul cu git fetch --unshallow
  • Verifică dimensiunea repository-ului înainte să clonezi

Common Mistakes

  1. Omisiunea lui --recursive — proiectele cu submodule nu se compilează fără descărcarea lor
  2. Clonarea întregului istoric inutil — pentru deploy-uri rapide, --depth 1 este suficient
  3. Confuzia dintre --branch și checkout post-clonare--branch setează branch-ul activ imediat
  4. Clonarea superficială fără posibilitatea de a face push — clonele shallow nu pot face push ușor

Aceste greșeli apar frecvent în lucrul cu Git. Contribuitorii DodaTech le-au identificat prin analiza proiectelor open-source și a sistemelor de producție.

Practice Exercise

Exercițiu: Clonează repository-ul https://github.com/torvalds/linux cu --depth 1, apoi verifică dimensiunea descărcată. Apoi clonează-l din nou fără --depth și compară dimensiunile.

FAQ

### Ce face git clone --depth 1?

git clone --depth 1 creează o clonă superficială care include doar ultimul commit din istoric. Repository-ul rezultat este mult mai mic și se descarcă rapid, dar nu conține istoricul complet.

Cum clonez un branch specific?

Folosește git clone --branch <nume-branch> <url>. Acest lucru este util când ai nevoie doar de o ramură anume, cum ar fi develop sau feature-x.

Ce este git clone --recursive?

git clone --recursive clonează repository-ul și toate submodulele sale. Fără această opțiune, submodulele rămân nepopulate și trebuie inițializate manual cu git submodule update --init --recursive.

Construit de dezvoltatorii Doda Browser, DodaZIP și Durga Antivirus Pro. Uneltele DodaTech se integrează perfect cu Git pentru productivitate și securitate sporite.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro