Rumah >alat pembangunan >git >Analisis mendalam tentang prinsip kerja asas Git
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.
Kajian yang disyorkan: "Tutorial Pembelajaran Git"
Ruang kerja (Ruang Kerja) ialah direktori di mana kod tempatan terletak dan ia juga merupakan direktori di mana .git/ (gudang tempatan ) disimpan.
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.
Gudang tempatan (Repositori) juga dipanggil perpustakaan tempatan atau pustaka versi, yang menyimpan semua versi tempatan (gudang komit penghantaran). Fail berada dalam direktori .git/.
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.
Gambar di atas menerangkan dengan jelas arahan operasi antara partition Git yang berbeza.
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 ;
Pengenalan ringkas kepada .git / direktori
config menyimpan maklumat konfigurasi gudang tempatan; >
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
Sebagai contoh, di bawah saya memuat naik kod menggunakan "Zhang San" dan "Li Si".
Alamat e-mel Li Four jelas tidak benar.
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.
E-mel penyerahan pengguna gitee boleh ditetapkan dan dilihat dalam gitee->Halaman Utama Peribadi->Tetapan Peribadi->Pengurusan Peti Mel:
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
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).
. 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.
Status git arahan boleh digunakan untuk melihat fail ruang kerja semasa Status:
2 Tambah fail ke kawasan storan sementara
#查看特定文件的状态 git status [filename]#查看所有文件状态 git status #精简的方式显示文件状态 git status -s
现在创建3个文件,再次使用git status(-s表示精简显示),3个文件的状态为Untracked,??为精简显示下Untracked的标志,意思是新创的文件没有被本地仓库(版本库)跟踪。
git add [文件…] 可以添加一个或多个文件到暂存区,使文件状态变为Staged,A表示该文件被add到暂存区。
也可以使用 git add . 或 git add -A 将工作区所有文件添加到暂存库(除了.gitignore里声明的文件,本文暂不介绍)。
既然可以向暂存区添加文件,那么反向操作必然也不能少,git rm --cached [文件…] 命令可以将暂存区的文件移除,使其恢复到Untracked状态。
如果已经存入暂存区,但在文件提交到本地仓库前,我们对其进行了修改,那么它的状态将变为Modified。
对于Modified状态的文件,我们可以使用git add将修改后的版本加入到暂存区,也可以使用git checkout -- [file...]
将工作区的该文件恢复到暂存区的版本。
git add a.c重新添加a.c到暂存区:
下图为使用git checkout -- a.c
从暂存区恢复a.c文件,下图中我没有加 “ --”,它的作用是让checkout不检测任何其他选项参数,目的是防止该命令把a.c当做一个分支(checkout 还有一个作用是切换分支)。
对Modified状态下的文件使用 git diff 可以得出文件修改的详细记录,git diff和diff命令虽然作用都是对比文件,但git diff的作用是对比不同的状态下的同一文件,而diff用来对比两个不同的文件。
文件添加到暂存区的目的就是将其提交到本地仓库(版本库),提交命令为git commit -m “message”
我们可以在commit 后面添加文件,这样能指定提交的文件:
通过git log 可以查看提交记录,HEAD为本地仓库当前分支,指向主分支master:
直接使用 git commit -m “message” 可以将整个暂存区都提交到本地仓库:
#以一行的形式显示所有提交版本: git log --pretty=oneline
#一行显示,只显示哈希值的前7位: git log --oneline
#显示历史提交版本与当前版本的间隔数: git reflog
代码文件提交到本地仓库后,还需要推送到远程仓库进行托管。
我以码云为例,远程仓库的创建可以通过以下三步实现:
git remote add
如果要用https的方式上传代码,需要添加远程仓库https地址;用ssh上传代码,则url填远程仓库ssh地址。
Mula-mula salin alamat gudang daripada halaman utama gudang awan kod:
Saya menamakan alias tempatan asal gudang terpencil:
Gudang terpencil boleh Tetapkan berbilang, selagi alias tempatan tidak bercanggah.
Arahan git remote -v boleh menyemak alamat gudang jauh, atau anda boleh menyemaknya melalui git config -l
git remote remove
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.
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.
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.
[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.
2. Dapatkan gudang jauh (fetch)
git merge
3. Tarik gudang jauh (tarik)
Pembelajaran yang disyorkan: "
Atas ialah kandungan terperinci Analisis mendalam tentang prinsip kerja asas Git. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!