Artikel ini membawa anda pengetahuan yang berkaitan tentang Git, yang terutamanya memperkenalkan kandungan yang berkaitan tentang gudang jauh Git tidak mempunyai pelayan pusat seperti SVN gudang, saya harap ia akan membantu semua orang.
Pembelajaran yang disyorkan: "Tutorial Pembelajaran Git"
Git tidak mempunyai pelayan pusat seperti SVN.
Arahan Git yang kami gunakan pada masa ini semuanya dilaksanakan secara setempat, jika anda ingin berkongsi kod anda atau bekerjasama dengan pembangun lain melalui Git. Anda kemudiannya perlu meletakkan data pada pelayan yang boleh disambungkan oleh pembangun lain.
Contoh ini menggunakan Github sebagai gudang jauh Anda boleh membaca tutorial ringkas Github kami terlebih dahulu.
Perintah repositori jauh
1. Lihat repositori jauh semasa
2. Tambah repositori jauh
Jalankan git remote add untuk menambah repositori Git Jauh yang baharu dan tentukan singkatan yang mudah:
3. $ git fetch
Perintah ini akan mengakses repositori jauh dan menarik semua data yang belum anda miliki. Setelah pelaksanaan selesai, anda akan mempunyai rujukan kepada semua cawangan dalam repositori jauh itu, yang boleh digabungkan atau dilihat pada bila-bila masa.
Semua cawangan di bawah asal disalin
Perintah git fetch hanya akan memuat turun data ke repositori tempatan anda - ia tidak akan bergabung secara automatik atau Ubah suai semasa anda kerja. Anda mesti memasukkannya secara manual ke dalam kerja anda apabila bersedia.
Perintah git pull akan secara automatik mengambil dan menggabungkan cawangan jauh ke dalam cawangan semasa
Secara lalai, arahan git clone akan secara automatik menetapkan cawangan induk tempatan untuk menjejaki cawangan induk gudang jauh yang diklonkan (atau lalai cawangan dengan nama lain) . Menjalankan git pull biasanya akan mengambil data dari pelayan yang diklonkan dan secara automatik cuba bergabung ke dalam cawangan semasa.
3. git push ke repositori jauh
Arahan ini hanya akan berkuat kuasa jika anda mempunyai kebenaran menulis pada pelayan klon dan tiada siapa yang menolak sebelum ini. Apabila anda mengklon pada masa yang sama dengan orang lain, dan mereka menolak ke hulu dahulu dan kemudian anda menolak ke hulu, tolakan anda akan ditolak tanpa persoalan. Anda perlu mengambil kerja mereka dan menggabungkannya ke dalam kerja anda sebelum anda boleh menolaknya.
4. Lihat repositori jauh
Jika anda ingin melihat maklumat lanjut tentang repositori jauh, anda boleh menggunakan arahan git remote show.
5. Namakan semula gudang jauh
namakan semula git remote untuk mengubah suai singkatan gudang jauh
6. Pengalihan keluar gudang jauh
git remote remove atau git remote rm
7. Tag: Anda boleh menandakan komit dalam sejarah gudang untuk menunjukkan kepentingannya. Adalah lebih representatif bahawa orang akan menggunakan fungsi ini untuk menandakan nod pelepas
1) Senarai tag
2) git tag -l/list kaedah wildcard untuk menyenaraikan tag
3) Teg ringan (ringan): Ia hanyalah rujukan kepada komit tertentu, pada asasnya menyimpan checksum komit dalam fail - tiada maklumat lain disimpan
4) Teg beranotasi: objek lengkap yang disimpan dalam pangkalan data Git boleh disahkan dan mengandungi nama, alamat e-mel, tarikh dan masa, dan maklumat teg
5) Penandaan kemudian: Teg projek sejarah
6) Teg kongsi: Perintah git push tidak akan memindahkan tag ke pelayan gudang jauh dan boleh dijalankan git push origin.
git push origin --tags:将会把所有不在远程仓库服务器上的标签全部传送到那里。 ![Ringkasan mata pengetahuan gudang jauh Git (Github).](https://img-blog.csdnimg.cn/498567ecae294ae9af392a975334650f.png)
7) Untuk memadam teg pada repositori tempatan anda
git tag -d
Perhatikan bahawa arahan di atas tidak akan memadamkan teg daripada mana-mana repositori jauh Untuk mengalih keluar teg ini, anda mesti mengemas kini repositori jauh anda dengan git push :refs/tags/:
Perhatikan bahawa arahan di atas tidak akan mengalih keluar teg ini daripada mana-mana repositori jauh
Varian pertama yang mesti digunakan ialah git push :refs/tags/:
$ git push origin :refs/tags/v1.4-lw
Maksud operasi di atas adalah kepada The null nilai sebelum titik bertindih ditolak ke nama tag jauh, dengan berkesan memadamkannya.
Cara kedua yang lebih intuitif untuk memadam tag jauh ialah:
$ git push origin --delete
8. pengurusan cawangan git
Nota: cawangan git, menyenaraikan semua cawangan semasa, sebelum cawangan * aksara: Ia mewakili cawangan yang sedang diperiksa
1) ujian cawangan git mencipta cawangan ujian
2) ujian git checkout menukar cawangan dan melihat cawangan semasa Anda boleh menunjuk HEAD ke cawangan semasa
[ git checkout -b Buat dan tukar cawangan ]
3) Cawangan ujian pendapat awam diserahkan secara berasingan, dan penunjuk kepala akan bergerak ke hadapan
Penanda aras kedua-dua cawangan ialah 9623a70fe, dan setiap cawangan akan diserahkan secara berasingan. Penunjuk berubah
Jalankan git log --oneline --decorate --graph --all , ia akan mengeluarkan sejarah penyerahan anda, penunjuk setiap cawangan dan Status cawangan projek.
Status fork:
Cawangan gabungan git merge [Cawangan pendapat umum tidak akan diubah suai, cawangan hotfix akan menjana penyerahan baharu] – Penggabungan tiga pihak
hotfix adalah berdasarkan ujian pendapat awam Tarik cawangan, jana komit dalam hotfix, semak sama ada id komit cawangan hotfix ialah 85bb*, tukar kembali ke cabang pendapat umum, jalankan git merge, dan dapatkan komit id cawangan pendapat awam juga dimajukan kepada 85bb*
Ilustrasi perubahan dalam cabang pendapat umum dan cabang hotfix:
Branch merge git. merge [Cawangan pendapat awam/Cawangan ujian menjana penyerahan baharu]
Tarik ujian berdasarkan cawangan ujian pendapat awam, Cawangan ujian/pendapat awam Cawangan tersebut diubah suai untuk menghasilkan komitmen masing-masing Selepas cawangan pendapat umum menggabungkan kandungan cawangan hotfix , ia ditukar kepada cawangan Ujian Apabila cabang ujian bergabung dengan cabang pendapat awam, didapati bahawa cawangan Pengujian secara langsung menjana id41b1* komit baharu, dan d804 dan 85 yang sepadan dalam cabang pendapat awam ialah Tidak, iaitu. ID tidak akan digabungkan pada masa ini, ID baharu sepadan dengan dua ID induk, iaitu Da4 untuk ujian dan 85b untuk cabang pendapat awam
1) kotak semak git Pengujian
2) git merge cabang pendapat awam
4)git branch -v 查看每个分支的最后一次提交
5)git branch --merged/–no-merged 过滤这个列表中已经合并或尚未合并到当前分支的分支
6)git branch -d
包含了还未合并的工作,尝试使用 git branch -d 命令删除它时会失败,除非用-D
9、远程分支
1) git ls-remote 来显式地获得远程引用的完整列表
通过 git remote show 获得远程分支的更多信息
2)origin/master和master区别
master : 它代表本地的某个分支名。 origin master 代表着两个概念,前面的 origin 代表远程名,后面的 master 代表远程分支名 origin/master 本地分支,是从远程拉取后,在本地建立的一份拷贝【是用来和远程分支对应的,一般不可见】 举几个例子可能会更加清晰地说明问题: ① 执行 git fetch origin master 时,它的意思是从名为 origin 的远程上拉取名为 master 的分支到本地分支 origin/master 中。既然是拉取代码,当然需要同时指定远程名与分支名,所以分开写。 ②执行 git merge origin/master 时,它的意思是合并名为 origin/master的分支到当前所在分支。既然是分支的合并,当然就与远程名没有直接的关系,所以没有出现远程名。需要指定的是被合并的分支。 ③执行 git push origin master 时, 推送本地的 master 分支到远程origin, ④ 一次性拉取多个分支的代码:git fetch origin master dev1 dev2 ⑤ 一次性合并多个分支的代码:git merge origin/master 分支1 分支2 分支3
2)如果远程仓库有人提交内容,那么远程仓库就会向前移动,而本地origin/master如果不拉取,将还保持不动,如果希望本地同远程保持一致,可以通过git fetch拉取远程仓库数据,
git fetch
3) git push origin 分支名
推送本地的 舆情测试 分支,将其作为远程仓库的 舆情测试 分支
如果并不想让远程仓库 上的分支叫做 舆情测试 ,可以运行 git push origin 舆情测试 :test0421 来将本地的 舆情测试 分支推送到远程仓库上的 test0421 分支。
4)checkout 的操作
通过 git checkout test0421 会把分支切换到test0421分支上
这个操作会处于‘detached Head’ 状态,在这种状态下不会修改origin/test0421上的数据,可以修改并提交做一些实验性的操作,但是切换回test0421分支后,再次从test0421切换回origin/test0421时,之前的改变不会同步,因为origin/test0421 是用户只读的
5)git push origin --delete 分支名 删除远程仓库分支【本地仓库还有数据】
6)rebase变基:使用 rebase 命令将提交到某一分支上的所有修改都移至另一分支上,就好像“重新播放”一样。
首先找到这两个分支(即当前分支 Test0421、变基操作的目标基底分支 Test0420) 的最近共同祖先 85bb,然后对比当前分支相对于该祖先的历次提交,提取相应的修改并存为临时文件, 然后将当前分支指向目标基底 3467, 最后以此将之前另存为临时文件的修改依序应用
Test0420 使用git merge 合并Test0421内容,结果两个分支完全一致,可以发现提交记录没有出现分拆,而是保持在一条直线上【可以比较前面get merge环节中结果出现分叉】
rebase时一系列提交按照原有次序依次应用,只是当前分支的提交id值改变
merge时多次提交合并成一次,生成新的提交id
总结:无论是通过变基,还是通过三方合并,整合的最终结果所指向的快照始终是一样的,只不过提交历史不同罢了。 变基是将一系列提交按照原有次序依次应用到另一分支上,而合并是把最终结果合在一起。
推荐学习:《Git学习教程》
Atas ialah kandungan terperinci Ringkasan mata pengetahuan gudang jauh Git (Github).. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!