Rumah  >  Artikel  >  alat pembangunan  >  Contoh terperinci git init dan klon git untuk mendapatkan gudang git

Contoh terperinci git init dan klon git untuk mendapatkan gudang git

WBOY
WBOYke hadapan
2022-04-02 13:18:293607semak imbas

Artikel ini membawa anda pengetahuan yang berkaitan tentang Git, yang terutamanya memperkenalkan isu berkaitan git init dan git clone untuk mendapatkan git warehouse, termasuk git clone daripada pangkalan data storan Git sedia ada Klonkan warehouse kepada a direktori tempatan dan kandungan lain yang berkaitan, saya harap ia akan membantu semua orang.

Contoh terperinci git init dan klon git untuk mendapatkan gudang git

Pembelajaran yang disyorkan: "Tutorial Git"

Gunakan git init dan klon git untuk mendapatkan repositori git

Biasanya Terdapat dua cara untuk mendapatkan repositori git:

  • Tukar direktori tempatan yang tidak berada di bawah kawalan versi kepada repositori Git; >Dari pelayan lain Klonkan repositori Git yang sedia ada; mencipta pangkalan data repositori Git kosong pada asasnya akan mencipta fail

    ,
  • ,
  • dan templat dalam direktori

    . Fail HEAD awal juga dibuat yang merujuk kepada HEAD cawangan induk.

    Jika pembolehubah persekitaran
  • ditentukan, ia akan menggantikan direktori
sebagai asas untuk repositori.

Jika direktori ditentukan melalui pembolehubah persekitaran , maka direktori sha1 dicipta dalam direktori ini, jika tidak, ia adalah direktori lalai

.
git init [-q | --quiet] [--bare] [--template=<template_directory>]
           [--separate-git-dir <git dir>]
           [--shared[=<permissions>]] [directory]
Ia selamat untuk dijalankan

dalam repositori Git sedia ada, ia tidak akan menimpa perkara sedia ada. Sebab utama untuk menjalankan semula .git adalah untuk mendapatkan templat yang baru ditambah (atau dalam kes pilihan objects, untuk mengalihkan repositori Git ke tempat lain). refs/headsrefs/tags
$GIT_DIR./.git Hanya cetak mesej ralat dan mesej amaran;
objects$GIT_OBJECT_DIRECTORY$GIT_DIR/objects
git init digunakan untuk menyalin fail dalam folder templat ke pangkalan data storan git init apabila kami memulakan repositori Git Jika tidak dinyatakan, lalai What is yang disalin ialah templat di bawah laluan --separate-git-dir, yang merangkumi kandungan berikut:

Jika anda menentukan laluan lalai anda sendiri, pangkalan data storan Git yang dimulakan adalah seperti berikut:
  • Templat boleh ditetapkan melalui [-q, --quite],
    Tetapan pembolehubah persekitaran,
  • tetapan konfigurasi dan ganti tetapan peringkat bawah secara bergilir.
  • [--bare]
    .git Secara lalai
    akan mencipta folder git init --bare dalam direktori semasa untuk menyimpan pangkalan data Git Perintah ini boleh menentukan laluan untuk memulakan pangkalan data storan Git dan menciptanya secara setempat .
  • fail untuk dipautkan ke direktori yang ditentukan:
  • [--template=<template_directory>]
    Anda boleh melihat bahawa terdapat hanya satu .git fail secara setempat. Fail ini menerangkan lokasi khusus pangkalan data storan Git gudang semasa , dan Paut ke masa lalu secara automatik. /usr/share/git-core/templates
    $ ls /usr/share/git-core/templates/
    branches  description  hooks  info
    git init --template
    digunakan untuk menentukan kebenaran baca dan tulis pangkalan data storan Git yang dibuat, termasuk tetapan kebenaran untuk pengguna dalam kumpulan yang sama, semua pengguna, dll. Jika tidak dinyatakan, lalainya ialah --template=<DIR> kebenaran. Jika anda berminat, anda boleh $GIT_TEMPLATE_DIR menyemak penggunaan khusus pilihan ini. init.templateDir
  • [--separate-git-dir <git dir>] Jika pilihan ini ditentukan, perintah
    akan dijalankan dalam direktori ini dan direktori akan dibuat jika ia tidak wujud. git init.git.git
    2 git klon Klon repositori daripada pangkalan data storan Git sedia ada ke direktori tempatan git init --separate
    .git
  • Klon repositori ke direktori yang baru dibuat , buat cawangan penjejakan jauh untuk setiap cawangan dalam repositori Git klon (cawangan penjejakan boleh dilihat melalui
  • ), dan buat serta semak cawangan repositori klon yang sedang aktif ke cawangan awal tempatan. [--shared[=<permissions>]] Selepas pengklonan selesai, perintah
    tanpa parameter boleh mengemas kini semua cawangan penjejakan jauh dan perintah group tanpa parameter juga akan menggabungkan cawangan induk jauh ke dalam cawangan semasa. git init --help Konfigurasi lalai ini dicapai dengan membuat rujukan kepada kepala cawangan jauh di bawah
  • dan memulakan pembolehubah konfigurasi
  • dan [directory].
    • [--template=<template_directory>]
      请看git init相关选项获取此选项作用。
    • [-l, --local]
      用于从本地Git存储仓库克隆Git存储数据库,此选项会拷贝本地的refs,HEAD等信息到克隆的Git存储数据库,并将.git/objects通过硬链接形式链接到本地Git存储库以节约本地空间。
      如果未指定-l选项但[url]是本地路径则还是会默认进行-l选项的行为,但是如果指定的是--no-local选项对本地仓库进行克隆则会走默认的git clone流程:
      git clone --no-local
    • [-s, --shared]
      当克隆的仓库在本地时,默认是将本地仓库中.git/objects的对象通过硬链接的方式链接到本地的克隆仓库,使用此选项不会再硬链接.git/objects目录,而是在本地的.git/objects/info目录中创建一个alternates文件并在其中描述objects原先的位置并进行共享使用。
      注意:这个选项是一个危险的选项,除非你明白它的作用,否则不要使用它。如果使用这个选项克隆了本地仓库,然后删除了源仓库中的分支,一些对象可能会变成未被引用状态。而这些对象是可能被git的命令(git commit内部可能自动调用git gc --atuo)删除的,从而导致仓库被破坏。
      还需要注意:在用-s选项克隆的存储库中运行git repack时,如果没有指定--local,-l选项,则会将源存储库中的objects复制到克隆存储库中的一个包里面,从而消除了--shared选项带来的共享效果和节省的空间。直接运行git gc是安全的,因为默认使用的--local,-l选项。
      如果想在-s选项指定的仓库中打破对共享的依赖,则可以使用git repack -a命令将源存储库中的所有对象复制到克隆的存储库的一个包中。
    • [--no-hardlinks]
      强制在克隆本地仓库时使用拷贝的形式复制.git/objects中的内容而不是使用硬链接的形式,在进行Git存储库备份时这个选项就很有用。
    • [-q, --quite]
      安静的运行命令,进度不会报告到标准错误流中。
    • [-n, --no-checkout]
      克隆完成后不执行检出HEAD操作:
      git clone -n
    • [--bare]
      创建一个裸的Git仓库。也就是说不创建<directory>/.git目录也不会将管理文件放到<directory>/.git中,而是为自己创建一个<directory>或者<directory>.git目录,里面保存的就是实际的Git数据库。这个选项也默认是--no-checkout的,不会检出任何HEAD,也不会自动跟踪任何远程分支,也不会创建相关的配置变量。
    • [--mirror]
      设置源Git存储库的镜像。类似于--bare,对比--bare--mirror不仅仅映射源的本地分支到目标的本地分支,它还映射所有引用(包括远程跟踪分支,笔记等),并设置refspec配置,以便所有这些引用都被目标存储库中的git远程更新覆盖。
      注意:--bare--mirror都是针对服务器使用,因为服务器只需要保存Git存储数据库而不需要实际操作git命令,所以当你在这两个选项创建的存储库执行Git命令会得到下面的打印:
      fatal: this operation must be run in a work tree
    • [-o <name>, --origin <name>]
      未使用此选项时默认使用origin来跟踪远程仓库,使用此选项后使用<name>来跟踪远程仓库。
    • [-b <name>, --branch <name>]
      不要将新创建的HEAD指向克隆仓库HEAD指向的分支,而是指向<name>分支。
    • [-u <upload-pack>, --upload-pack <upload-pack>]
      在使用ssh访问要克隆的Git存储库时,它为另一端运行的命令指定了一个非默认的路径。这个选项主要针对Git服务器使用,为服务器使用的git等指定了一个路径。一般是/usr/bin/git-upload-pack,当服务器的git运行时会自动找到此路径的程序。
    • [--reference[-if-able] <repository>]
      Jika repositori Git yang dirujuk berada pada mesin tempatan, fail .git/objects/info/alternates akan disediakan secara automatik untuk mengambil objects daripada repositori sumber rujukan Menggunakan repositori Git sedia ada sebagai alternatif akan memerlukan lebih sedikit objectss repositori sumber, dengan itu mengurangkan kos storan rangkaian dan tempatan. Apabila menggunakan --reference-if-able, direktori yang tidak sedia ada dilangkau dan amaran dikeluarkan dan bukannya membatalkan pengklonan.
    • [--dissociate]
      Meminjam objek --reference daripada repositori Git yang dirujuk oleh objects hanya mengurangkan pemindahan rangkaian dan berhenti selepas pengklonan dengan membuat salinan tempatan yang diperlukan objects Pinjam objek daripada perpustakaan rujukan. Apabila klon tempatan sudah meminjam objects daripada repositori lain, pilihan ini boleh digunakan untuk menghentikan repositori baharu daripada meminjam objects daripada repositori yang sama. Pilihan ini juga digunakan terutamanya untuk pelayan Git.
    • [--separate-git-dir <git dir>]
      Sila lihat git init pilihan berkaitan untuk mendapatkan kesan pilihan ini.
    • [--depth <depth>]
      Buat klon cetek, bilangan komit yang perlu diklon ditentukan oleh <depth>, dan dapatkan komit teratas semua cawangan dan kemudian klon bilangan komit <depth> tempatan. Jika anda juga ingin mengklon submodul, anda juga boleh lulus pilihan --shallow-submodules.
    • [--[no-]single-branch]
      Seperti namanya, --single-branch hanya akan mengklon cawangan tertentu dalam repositori Git Cawangan lain dalam repositori Git jauh tidak akan diklon secara setempat atau dijejaki secara setempat hanya akan menjejaki satu cawangan jauh.
    • [--no-tags]
      tidak akan mengklon mana-mana teg dan menetapkan remote.<remote>.tarOpt=--no-tags dalam konfigurasi untuk memastikan bahawa git pull dan git fetch berikutnya tidak akan beroperasi pada teg melainkan Label dikendalikan secara eksplisit.
      boleh digunakan dengan --single-branch untuk mengekalkan satu cawangan, berguna apabila hanya mengekalkan cawangan lalai tertentu.
    • [--recurse-submodules[=<pathspec>]]
      Selepas klon dibuat, submodul dimulakan dan diklonkan mengikut <pathspec> yang disediakan, jika tiada <pathspec> dinyatakan maka semua submodul dimulakan dan diklon. Pilihan ini boleh diberikan beberapa kali untuk <parhspec> dengan berbilang entri.
      Menggunakan pilihan ini secara lalai adalah bersamaan dengan menjalankan git submodule update --init --recursive <pathspec>.
    • [--[no-]shallow-submodules]
      Semua submodul klon mempunyai kedalaman klon cetek 1.
    • [--[no-]remote-submodules]
      Kemas kini submodul dengan status cawangan penjejakan jauh semua submodul klon, dan bukannya merekodkan SHA1 dalam pangkalan data Git. Bersamaan dengan melepasi pilihan --remote kepada git submodule update.
    • [-j <n>, --jobs <n>]
      Bilangan sub-modul dikeluarkan pada masa yang sama, lalai ialah konfigurasi submodule.fetchJobs.
    • [--sparse]
      Mod daftar keluar jarang, apa yang dipanggil daftar keluar jarang bermakna apabila menyemak repositori tempatan, tidak semua didaftar keluar, tetapi hanya fail yang ditentukan didaftar keluar dari repositori tempatan ke ruang kerja, dan fail Tidak Ditentukan lain tidak akan diperiksa (walaupun fail ini wujud dalam ruang kerja, pengubahsuaian padanya akan diabaikan). Ciri ini tidak diterangkan secara terperinci di sini.
    • [--]
      tidak mempunyai kesan praktikal, hanya untuk memisahkan pilihan dan objek operasi untuk memudahkan pembezaan.
    • <repository>
      Gudang yang akan diklonkan mungkin gudang terpencil atau gudang tempatan, mungkin https protokol atau ssh protokol atau git protokol, dsb.
    • [<directory>]
      Jika direktori ini ditentukan, repositori Git akan diklonkan ke dalam direktori ini.
    • -v, --verbose
      Output panjang maklumat klon.
    • [-c <key>=<value>, --config <key>=<value]
      Tetapkan pembolehubah konfigurasi untuk repositori Git yang baru dibuat apabila mengklon repositori, yang akan berkuat kuasa serta-merta selepas pengklonan selesai

    Kajian yang disyorkan: " Tutorial Git

Atas ialah kandungan terperinci Contoh terperinci git init dan klon git untuk mendapatkan gudang git. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam