Git
Repositories klonen
Zoeken…
Syntaxis
- git clone [<options>] [-] <repo> [<dir>]
- git clone [--template = <template_directory>] [-l] [-s] [--no-hardlinks] [-q] [-n] [--bare] [--mirror] [-o <naam> ] [-b <naam>] [-u <upload-pack>] [--referentie <repository>] [--dissociate] [--separate-git-dir <git dir>] [--depth <depth> ] [- [no-] single-branch] [- recursive | --recurse-submodules] [- [no-] shallow-submodules] [--jobs <n>] [-] <repository> [<directory>]
Ondiepe kloon
Het klonen van een enorme repository (zoals een project met meerdere jaren geschiedenis) kan lang duren of mislukken vanwege de hoeveelheid gegevens die moet worden overgedragen. In gevallen waarin u niet de volledige geschiedenis beschikbaar hoeft te hebben, kunt u een ondiepe kloon doen:
git clone [repo_url] --depth 1
De bovenstaande opdracht haalt alleen de laatste commit uit de externe repository.
Houd er rekening mee dat u mogelijk fusies in een ondiepe repository niet kunt oplossen. Het is vaak een goed idee om minstens evenveel commits te nemen als je nodig hebt om terug te gaan om fusies op te lossen. Om bijvoorbeeld in plaats daarvan de laatste 50 commits te krijgen:
git clone [repo_url] --depth 50
Later, indien nodig, kunt u de rest van de repository ophalen:
git fetch --unshallow # equivalent of git fetch -–depth=2147483647
# fetches the rest of the repository
git fetch --depth=1000 # fetch the last 1000 commits
Reguliere kloon
Typ het volgende om de hele repository inclusief de volledige geschiedenis en alle branches te downloaden:
git clone <url>
In het bovenstaande voorbeeld wordt het in een map geplaatst met dezelfde naam als de naam van de gegevensopslagruimte.
Typ het volgende om de repository te downloaden en op te slaan in een specifieke map:
git clone <url> [directory]
Ga voor meer informatie naar Een repository klonen .
Kloon een specifieke tak
Om een specifieke tak van een repository te klonen, typt u --branch <branch name>
voor de repository url:
git clone --branch <branch name> <url> [directory]
Typ -b
om de steno-optie voor --branch
te gebruiken. Deze opdracht downloadt de hele repository en checkt <branch name>
.
Om schijfruimte te besparen, kunt u geschiedenis klonen die alleen naar een enkele vertakking leidt met:
git clone --branch <branch_name> --single-branch <url> [directory]
Als --single-branch
niet wordt toegevoegd aan de opdracht, wordt de geschiedenis van alle branches gekloond in [directory]
. Dit kan een probleem zijn met grote opslagplaatsen.
Om later de vlag --single-branch
ongedaan te maken en de rest van de repository op te halen, gebruik je de opdracht:
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin
Kloon recursief
git clone <url> --recursive
Kloneert de repository en kloneert ook alle submodules. Als de submodules zelf extra submodules bevatten, zal Git deze ook klonen.
Kloon met behulp van een proxy
Als je bestanden met git onder een proxy moet downloaden, kan het instellen van proxyserver voor het hele systeem niet voldoende zijn. Je kunt ook het volgende proberen:
git config --global http.proxy http://<proxy-server>:<port>/