Rumah >alat pembangunan >git >Analisis mendalam tentang prinsip kerja asas Git

Analisis mendalam tentang prinsip kerja asas Git

WBOY
WBOYke hadapan
2022-04-07 13:30:523852semak imbas

Artikel ini membawakan anda pengetahuan yang berkaitan tentang Git Ia terutamanya memperkenalkan prinsip kerja asas git, tutorial peringkat permulaan dan membantu orang baru memulakan Git dengan cepat dengan bermain dengan gudang tempatan Git membantu semua orang.

Analisis mendalam tentang prinsip kerja asas Git

Kajian yang disyorkan: "Tutorial Pembelajaran Git"

1 🎜>1. Pembahagian Git

Pembahagian Git termasuk ruang kerja, kawasan pementasan, repositori tempatan (repositori tempatan) dan repositori jauh (repositori jauh).

    Ruang kerja
  1. Ruang kerja (Ruang Kerja) ialah direktori di mana kod tempatan terletak dan ia juga merupakan direktori di mana .git/ (gudang tempatan ) disimpan.

  2. Kawasan pementasan
  3. Kawasan pementasan (Indeks/Pentas) ialah ruang cache ruang kerja dan gudang tempatan, yang merekodkan penyerahan akan datang kepada gudang tempatan. (Perpustakaan versi) maklumat pengubahsuaian fail, fail indeks dalam direktori .git/ ialah kawasan storan sementara.

  4. Gudang tempatan
  5. Gudang tempatan (Repositori) juga dipanggil perpustakaan tempatan atau pustaka versi, yang menyimpan semua versi tempatan (gudang komit penghantaran). Fail berada dalam direktori .git/.

  6. Gudang jauh
  7. Gudang jauh (Jauh) Pada rangkaian, GitHub, Gitee dan GitLab boleh mencipta gudang jauh Seperti gudang tempatan, gudang jauh Kod yang berbeza versi juga disimpan, tetapi versi ini boleh datang daripada berbilang repositori tempatan.

    2. Aliran Kerja

-------------------- ----- ---------------------------Gambar di bawah datang dari Internet---------------- - ------------------------------------------


Gambar di atas menerangkan dengan jelas arahan operasi antara partition Git yang berbeza. Analisis mendalam tentang prinsip kerja asas Git

Jika anda ingin melaksanakan fungsi memuat naik kod, ruang kerja menggunakan tambah untuk menambah fail ke kawasan storan sementara, kemudian menyerahkan versi ke gudang tempatan melalui komit. gudang tempatan menggunakan push untuk menolak versi ke gudang jauh ;

    Fail yang diubah suai dalam ruang kerja boleh dipulihkan dari gudang tempatan atau kawasan pementasan melalui arahan pembayaran jika anda ingin mengemas kini kod a cawangan di ruang kerja ke versi terbaru gudang jauh, anda boleh menggunakan arahan tarik;
  • Menggunakan klon pada gudang jauh boleh menyalin cawangan utama gudang jauh ke gudang tempatan serupa dengan pull, kecuali pull itu akan menggabungkan kod tempatan, manakala fetch hanya akan mengambil versi terkini ke dalam repositori tempatan, tidak kira sama ada gudang tempatan itu Terdapat penambahan baharu.
  • 2. Inisialisasi gudang tempatan
1. git init

Gudang tempatan (pustaka versi) perlu dibuat menggunakan arahan git init (ia juga boleh dibuat terus dari Pengklonan gudang terpencil, diperkenalkan kemudian).

Masukkan ruang kerja (direktori storan kod), masukkan git init, git akan mencipta direktori .git/ baharu dalam ruang kerja:



Pengenalan ringkas kepada .git / direktoriAnalisis mendalam tentang prinsip kerja asas Git

Dalam direktori .git/ yang baru dibuat, terdapat 3 fail teks:

Analisis mendalam tentang prinsip kerja asas Git
config menyimpan maklumat konfigurasi gudang tempatan; >

perihalan digunakan untuk menerangkan nama gudang;
  • HEAD ialah cawangan semasa gudang tempatan, lalainya ialah induk, menunjuk ke rujukan/ketua/tuan, ia boleh dilihat bahawa refs/ direktori terutamanya menyimpan beberapa maklumat cawangan;
  • Apabila mengendalikan gudang tempatan nanti, fail lain akan dijana, seperti log/ - untuk menyimpan rekod yang diserahkan, dan indeks - kawasan simpanan sementara.
[Nota]

Jangan tukar fail secara manual dalam .git/, kerana ia boleh merosakkan struktur gudang tempatan dan menyebabkan akibat buruk.

3. Konfigurasi maklumat pengguna 1 Pengenalan kepada nama pengguna dan konfigurasi e-mel

Perkara pertama selepas memulakan gudang tempatan ialah menambah maklumat konfigurasi pengguna ke gudang tempatan , termasuk Nama pengguna dan alamat e-mel,

Nama pengguna dan alamat e-mel di sini tidak mempunyai hubungan langsung dengan akaun platform pengehosan (seperti gitee)

Satu-satunya fungsinya adalah untuk membenarkan pengguna lain atau platform pengehosan mengetahui maklumat pemuat naik kod tersebut. Mengisinya tidak akan menghalang anda daripada memuat naik kod.

Sebagai contoh, di bawah saya memuat naik kod menggunakan "Zhang San" dan "Li Si".
Analisis mendalam tentang prinsip kerja asas Git Alamat e-mel Li Four jelas tidak benar.

Analisis mendalam tentang prinsip kerja asas Git Memandangkan alamat e-mel "Zhang San" dan "Li Si" tidak terikat kepada akaun gitee, apabila anda mengklik pada avatar mereka, maklumat pengguna tidak akan dipaparkan Jika penyerahan akaun gitee telah diisi dalam E-mel konfigurasi pengguna, anda boleh menyemak maklumat akaun pemuat naik di gitee.

Analisis mendalam tentang prinsip kerja asas Git E-mel penyerahan pengguna gitee boleh ditetapkan dan dilihat dalam gitee->Halaman Utama Peribadi->Tetapan Peribadi->Pengurusan Peti Mel:

Analisis mendalam tentang prinsip kerja asas Git

2. Gunakan git config untuk mengkonfigurasi maklumat pengguna

Saya telah bercakap tentang banyak perkara yang perlu diberi perhatian tentang nama pengguna dan e-mel Malah, konfigurasi maklumat pengguna adalah sangat mudah:

git config --global user.name "your name"git config --global user.email "your email"
pengguna .nama diikuti dengan nama pengguna, sebarang isian.

pengguna.e-mel diikuti dengan alamat e-mel pengguna, isikannya seperti yang dikehendaki.
–global digunakan untuk mengkonfigurasi sifat global

Analisis mendalam tentang prinsip kerja asas Git Apabila menyerahkan kod ke gudang tempatan, git akan mendapatkan semula fail .git/config gudang tempatan itu Jika tiada maklumat pengguna, fail konfigurasi global akan digunakan (Selaras dengan prinsip kedekatan).

Fail konfigurasi global disimpan dalam direktori pengguna sistem/nama pengguna/.gitconfig, yang hanya mengandungi atribut pengguna.


Analisis mendalam tentang prinsip kerja asas Git

Apabila –global tidak ditambah, hanya konfigurasi pengguna gudang tempatan ditetapkan Maklumat konfigurasi pengguna gudang tempatan disimpan dalam: .git/config


. Analisis mendalam tentang prinsip kerja asas Git Gambar di atas adalah milik saya Hanya nama pengguna konfigurasi tempatan ditetapkan Pada masa ini, jika pengubahsuaian diserahkan kepada gudang tempatan, nama pengguna dalam rekod penyerahan (di bawah) menggunakan konfigurasi tempatan peti mel pengguna tidak dikonfigurasikan secara setempat, peti mel masih menggunakan peti mel yang ditentukan dalam konfigurasi global.

Analisis mendalam tentang prinsip kerja asas Git

4 Menguruskan fail kawasan pementasan

Selepas mengkonfigurasi maklumat pengguna, kami boleh mula mempertimbangkan untuk menyerahkan kod, tetapi kadang-kadang, kami tidak mahu memikirkannya. keseluruhan kerja Semua fail di kawasan itu diserahkan kepada gudang tempatan (pustaka versi). Kewujudan kawasan simpanan sementara (indeks/peringkat) menyelesaikan masalah ini untuk kita Kita boleh menambah fail kod ke kawasan storan sementara terlebih dahulu kawasan sehingga kami merasakan bahawa fail telah dipilih Apabila anda hampir selesai, teruskan ke langkah seterusnya (serahkan ke gudang tempatan).

1. Status fail Git

Sebelum menguruskan kawasan pementasan, kita juga perlu mengetahui beberapa status fail ruang kerja:

  • Tidak Dijejaki Tidak dijejaki, tiada fail dalam kawasan pementasan telah ditambahkan pada ruang kerja dan jangan sertai dalam kawalan versi
  • Tidak diubah suai Tidak diubah suai, ditambahkan pada kawalan versi, tetapi sama seperti fail; syot kilat dalam repositori ;
  • Diubah suai telah diubah suai dan ditambahkan pada kawalan versi, dan berbeza daripada syot kilat semasa kali terakhir ditambahkan pada repositori; >Berperingkat telah berperingkat, Langkah seterusnya boleh diserahkan ke gudang tempatan (pustaka versi).
  • -------------------------------------- --- ----------------Gambar di bawah datang dari Internet----------------------- --------- -------------------------

Status git arahan boleh digunakan untuk melihat fail ruang kerja semasa Status:
Analisis mendalam tentang prinsip kerja asas Git2 Tambah fail ke kawasan storan sementara

Mula-mula semak status semua fail dalam ruang kerja dan dapatkan bahawa ada. tiada fail:
#查看特定文件的状态
git status [filename]#查看所有文件状态
git status

#精简的方式显示文件状态
git status -s

现在创建3个文件,再次使用git status(-s表示精简显示),3个文件的状态为Untracked,??为精简显示下Untracked的标志,意思是新创的文件没有被本地仓库(版本库)跟踪。
Analisis mendalam tentang prinsip kerja asas Git
git add [文件…] 可以添加一个或多个文件到暂存区,使文件状态变为Staged,A表示该文件被add到暂存区。
Analisis mendalam tentang prinsip kerja asas Git
也可以使用 git add . 或 git add -A 将工作区所有文件添加到暂存库(除了.gitignore里声明的文件,本文暂不介绍)。
Analisis mendalam tentang prinsip kerja asas Git

3. 删除暂存区的文件

既然可以向暂存区添加文件,那么反向操作必然也不能少,git rm --cached [文件…] 命令可以将暂存区的文件移除,使其恢复到Untracked状态。
Analisis mendalam tentang prinsip kerja asas Git

4. 文件修改管理

如果已经存入暂存区,但在文件提交到本地仓库前,我们对其进行了修改,那么它的状态将变为Modified。
Analisis mendalam tentang prinsip kerja asas Git
对于Modified状态的文件,我们可以使用git add将修改后的版本加入到暂存区,也可以使用git checkout -- [file...]将工作区的该文件恢复到暂存区的版本。

git add a.c重新添加a.c到暂存区:
Analisis mendalam tentang prinsip kerja asas Git
下图为使用git checkout -- a.c从暂存区恢复a.c文件,下图中我没有加 “ --”,它的作用是让checkout不检测任何其他选项参数,目的是防止该命令把a.c当做一个分支(checkout 还有一个作用是切换分支)。
Analisis mendalam tentang prinsip kerja asas Git
对Modified状态下的文件使用 git diff 可以得出文件修改的详细记录,git diff和diff命令虽然作用都是对比文件,但git diff的作用是对比不同的状态下的同一文件,而diff用来对比两个不同的文件。
Analisis mendalam tentang prinsip kerja asas Git

五、提交文件到本地仓库

文件添加到暂存区的目的就是将其提交到本地仓库(版本库),提交命令为git commit -m “message”

我们可以在commit 后面添加文件,这样能指定提交的文件:
Analisis mendalam tentang prinsip kerja asas Git
通过git log 可以查看提交记录,HEAD为本地仓库当前分支,指向主分支master:
Analisis mendalam tentang prinsip kerja asas Git
直接使用 git commit -m “message” 可以将整个暂存区都提交到本地仓库:

Analisis mendalam tentang prinsip kerja asas Git

#以一行的形式显示所有提交版本:
git log --pretty=oneline

Analisis mendalam tentang prinsip kerja asas Git

#一行显示,只显示哈希值的前7位:
git log --oneline

Analisis mendalam tentang prinsip kerja asas Git

#显示历史提交版本与当前版本的间隔数:
git reflog

Analisis mendalam tentang prinsip kerja asas Git

六、推送到远程仓库

代码文件提交到本地仓库后,还需要推送到远程仓库进行托管。

1. 创建远程仓库

我以码云为例,远程仓库的创建可以通过以下三步实现:
Analisis mendalam tentang prinsip kerja asas Git

2. 添加远程仓库地址

git remote add 命令可以添加远程仓库,name为远程仓库地址的别名,自定义,url为仓库网络地址。
如果要用https的方式上传代码,需要添加远程仓库https地址;用ssh上传代码,则url填远程仓库ssh地址。

Mula-mula salin alamat gudang daripada halaman utama gudang awan kod:
Analisis mendalam tentang prinsip kerja asas Git

Saya menamakan alias tempatan asal gudang terpencil:
Analisis mendalam tentang prinsip kerja asas Git
Gudang terpencil boleh Tetapkan berbilang, selagi alias tempatan tidak bercanggah.

3. Semak alamat gudang jauh

Arahan git remote -v boleh menyemak alamat gudang jauh, atau anda boleh menyemaknya melalui git config -l
Analisis mendalam tentang prinsip kerja asas Git

4. Padamkan alamat gudang jauh

git remote remove Anda boleh memadamkan alamat jauh dengan nama alias setempat:
Analisis mendalam tentang prinsip kerja asas Git

5 Tekan ke gudang jauh

Mula-mula sahkan alias gudang jauh Alias ​​yang sepadan dengan alamat protokol https gudang jauh yang saya tetapkan sekarang ialah https, dan alias yang sepadan dengan alamat protokol ssh ialah ssh Kedua-dua alamat ini sebenarnya adalah gudang yang sama, tetapi protokolnya berbeza.
Analisis mendalam tentang prinsip kerja asas Git

Muat naik https

git push name boleh memuat naik gudang tempatan, nama adalah alias gudang jauh dalam fail konfigurasi, gunakan https untuk memuat naik , anda perlu memasukkan akaun dan kata laluan anda untuk melengkapkan muat naik Sistem Tetingkap akan menyimpan akaun dan kata laluan secara automatik Jika anda ingin mengubah suai nama pengguna dan kata laluan yang telah disimpan oleh Window, anda boleh merujuk kepada Mengubah Kredensial Log Masuk Gitee. .
Kadang-kadang muat naik pertama tidak berjaya Anda boleh cuba menggunakan git push -u name master Fungsi arahan ini adalah untuk menggunakan cawangan utama nama warehouse sebagai cawangan huluan -u. set-upstream Kesannya adalah sama.
Analisis mendalam tentang prinsip kerja asas Git
Analisis mendalam tentang prinsip kerja asas Git
Analisis mendalam tentang prinsip kerja asas Git

muat naik ssh

Jika anda ingin menggunakan ssh untuk memuat naik, anda perlu menjana SSH kekunci dahulu dan letakkan Kunci awam disimpan ke tetapan kunci awam SSH bagi tetapan peribadi gitee Untuk proses khusus, sila rujuk: Jana kunci SSH dan laksanakan muat naik kod
Kadang-kadang muat naik pertama tidak berjaya. anda boleh cuba menggunakan git push -u name master, fungsi arahan ini adalah untuk menggunakan cawangan utama nama warehouse kerana cawangan hulu -u dan –set-upstream mempunyai kesan yang sama.
Analisis mendalam tentang prinsip kerja asas Git
Analisis mendalam tentang prinsip kerja asas Git

7 Klon, ambil atau tarik dari repositori jauh

1 🎜> Pengklonan Git boleh menyalin gudang jauh ke gudang tempatan dan secara automatik memulakan gudang tempatan pada masa yang sama.

Buka Git bash dalam mana-mana direktori, masukkan git clone [], repo ialah URL gudang jauh, dir ialah laluan penyimpanan gudang klon (anda tidak perlu membuat ia terlebih dahulu), jika tidak diisi, maka Lalai kepada nama repositori jauh (bukan alias tempatan).


[Nota]
: Klon memerlukan kata laluan sama seperti push.
Klon berjaya dan anda memasuki direktori gudang Ia betul-betul sama dengan ruang kerja semasa memuat naik, dan log penyerahan juga sama. Analisis mendalam tentang prinsip kerja asas Git

Analisis mendalam tentang prinsip kerja asas Git2. Dapatkan gudang jauh (fetch)

Fungsi git fetch adalah untuk menyalin cawangan gudang jauh ke gudang tempatan dan menyimpan versi terkini dalam cawangan FETCH_HEAD Selepas mendapatkan cawangan gudang jauh, anda perlu menggabungkannya secara manual ke dalam cawangan semasa.

Format arahan: git fetch [], repositori ialah alamat rangkaian gudang jauh.

git merge digunakan untuk menggabungkan cawangan


Analisis mendalam tentang prinsip kerja asas Git3. Tarik gudang jauh (tarik)

git pull adalah serupa dengan git fetch, tetapi git pull secara automatik akan menggabungkan cawangan gudang jauh ke dalam cawangan tempatan semasa.


Analisis mendalam tentang prinsip kerja asas Git
Pembelajaran yang disyorkan: "

Tutorial Video Git

"

Atas ialah kandungan terperinci Analisis mendalam tentang prinsip kerja asas 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