Jadual Kandungan
tarik atau ambil
cantum atau base semula
示例操作
其他命令参考
Rumah alat pembangunan git Mari kita bincangkan tentang cara menarik dan menggabungkan kod secara elegan dalam Gitlab

Mari kita bincangkan tentang cara menarik dan menggabungkan kod secara elegan dalam Gitlab

Mar 28, 2023 pm 07:09 PM
git github gitlab

Bagaimana untuk menarik dan menggabungkan kod secara elegan dalam Gitlab? Artikel berikut akan memperkenalkan anda kepada kaedah menarik dan menggabungkan kod dalam Gitlab saya harap ia akan membantu anda!

Mari kita bincangkan tentang cara menarik dan menggabungkan kod secara elegan dalam Gitlab

tarik atau ambil

Terdapat dua bentuk operasi kod tarik, git pull dan git fetch, kemudian ini What's perbezaan antara keduanya?

Mari kita lihat gambarajah seni bina dahulu

Gambar menunjukkan proses git yang lengkap untuk memahami setiap kawasan dengan lebih jelas, mari kita pergi bawah Terangkan fungsinya:

  • direktori kerja, hanyalah kawasan tempat anda bekerja. Untuk git, ia adalah direktori kerja tempatan.
  • Kawasan pementasan (kawasan pentas, juga dipanggil kawasan indeks), ialah peringkat peralihan sebelum menyerahkan pengubahsuaian kepada repositori. Terdapat fail .git dalam direktori index di bawah direktori kerja, yang menyimpan kandungan kawasan storan sementara. Perintah git add menambah kandungan ruang kerja ke kawasan pementasan.
  • Repositori tempatan, repositori sistem kawalan versi, wujud secara tempatan. Apabila arahan git commit dilaksanakan, kandungan kawasan pementasan akan diserahkan ke gudang. Direktori .git/objects menyimpan setiap rekod penyerahan, manakala direktori .git/refs menyimpan maklumat cawangan dan maklumat tag.
  • Repositori jauh, pada asasnya adalah konsep yang sama dengan gudang tempatan Perbezaannya ialah satu wujud dari jauh dan boleh digunakan untuk kerjasama jauh, manakala satu lagi wujud secara tempatan. Interaksi setempat dan jauh boleh dicapai melalui tolak/tarik;
  • salinan gudang jauh, boleh difahami sebagai cache gudang jauh yang wujud secara tempatan. Apabila menggunakan git fetch untuk menarik repositori kod jauh, ia adalah sama dengan mempunyai salinan tempatan repositori jauh Anda boleh memilih untuk menggabungkan salinan ini ke dalam repositori tempatan.

Seperti yang anda boleh lihat daripada gambar, apabila kami menggunakan git pull untuk menarik kod, ia akan digabungkan terus ke dalam cawangan tempatan, dan apabila kami menggunakan git fetch untuk menarik kod, ia mula-mula akan digabungkan ke dalam cawangan tempatan Jana salinan repositori jauh dan kemudian menggabungkannya ke dalam cawangan tempatan menggunakan git merge atau git rebase.

Mengapa melakukannya beberapa kali apabila anda boleh git pull melakukannya secara langsung? Bayangkan satu senario Apabila anda ingin menggabungkan kod orang lain, tetapi anda tidak tahu perkara yang telah mereka ubah dan sama ada ia boleh digabungkan dengan kod anda, ini boleh dicapai dengan mudah melalui git fetch. git fetch Pada masa hadapan, ia tidak akan digabungkan dengan cawangan tempatan serta-merta Selepas git fetch, gambar berikut akan dipaparkan:

Gambar di atas menunjukkan bahawa. cawangan jauh baharu telah ditambahkan test2 cawangan, terdapat satu lagi maklumat penyerahan pada cawangan test Pada masa ini, anda boleh melihat satu lagi cawangan .git/refs/remotes/origin dalam direktori test2.

Menggunakan git log origin/test, anda boleh melihat maklumat penyerahan tertentu

Jika anda ingin melihat kandungan yang diserahkan, anda hanya boleh membuat cawangan baharu ,

git checkout -b test-origin
git merge test
Salin selepas log masuk

Setelah berkata ini, saya percaya anda sudah faham perbezaan antara git pull dan git fetch. Untuk meringkaskan:

  • git fetch lebih selamat dan lebih mesra pengguna

  • git pull lebih agresif dan merosakkan

Ketua Umum lazimnya menggunakan git fetch semasa menguruskan projek untuk menyemak cawangan mana yang telah ditambah baru-baru ini dan apakah pengubahsuaian yang telah dibuat, supaya dapat mengawal projek dengan lebih baik.

cantum atau base semula

Untuk operasi cantum yang disebutkan di atas, kami biasanya menggabungkan kod cawangan tertentu terus melalui git merge <分支名>. Mari kita lihat dahulu masalah penggunaan git merge secara langsung Terdapat mesej Merge branch yang sangat tidak menyenangkan, seperti yang ditunjukkan dalam gambar di bawah:

Gambar di bawah adalah. menggabungkan satu A carta alir Apabila kita menarik main dalam cabang dev untuk pembangunan, kedua-dua cawangan mempunyai rekod komit Apabila kita bergabung, keadaan biasa harus bergabung secara langsung atas dasar utama, bukan Ada maklumat penyerahan C7 tambahan, iaitu Merge branch yang dinyatakan di atas Ini jelas merupakan fenomena yang sangat tidak munasabah (sudah tentu, ini tidak menjejaskan kerja biasa git).

Jadi bagaimana untuk menyelesaikan masalah yang disebabkan oleh fenomena ini? Jawapannya ialah git rebase, biasanya dikenali sebagai rebasing.

下面我们先来看看变基以后git分支是什么样的了

可以看到,当dev分支更新之后,它会指向这些新创建的提交(commit),而那些老的提交会被丢弃。

示例操作

上面讲了这么多,现在让我们来实际操作一下。

场景:远程有一个main分支上有内容更新,现在我们需要把更新的内容合并到本地dev分支上,然后push到远程dev分支,当前分支实在dev分支。

简单实现(就是很朴实无华):

# 拉取main分支代码
git fetch origin main
# 合并到dev
git rebase origin/main
Salin selepas log masuk

上面的git rebase还有个快捷的操作,直接一行命令搞定

# 拉取test分支代码合并到dev
git pull --rebase origin test
Salin selepas log masuk

如果你不想每次都添加rebase,可以在终端中输入下面的命令:

git config --global pull.rebase true
Salin selepas log masuk

这个配置就是告诉git在每次pull前先进行rebase操作

其他命令参考

# 查看本地分支
git branch
# 查看远程分支
git branch -r
# 查看所有分支
git branch -a

# 拉取所有远程分支代码
git fetch 
# 拉取origin源上所有分支代码
git fetch origin
# 拉取orign源上main分支代码
git fetch origin main

# 拉取远程分支到新建的一个本地分支并
git checkout -b newBrach origin/master
# 合并远程分支到本地
git pull --rebase origin master

# 查看提交日志
git log --oneline
# 查看某个人提交的日志
git log --author=xiumubai --oneline
# 查看某个文件提交的记录
git blame README.md
# 查看某次提交的内容
git show <commitid>
# 查看最近几次的提交

git log -p -n
Salin selepas log masuk

(学习视频分享:编程基础视频

Atas ialah kandungan terperinci Mari kita bincangkan tentang cara menarik dan menggabungkan kod secara elegan dalam Gitlab. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara memuat turun projek git ke tempatan Cara memuat turun projek git ke tempatan Apr 17, 2025 pm 04:36 PM

Untuk memuat turun projek secara tempatan melalui Git, ikuti langkah -langkah ini: pasang git. Navigasi ke direktori projek. Pengklonan Repositori Jauh menggunakan arahan berikut: Git Clone https://github.com/username/repository-name.git

Cara mengemas kini kod dalam git Cara mengemas kini kod dalam git Apr 17, 2025 pm 04:45 PM

Langkah -langkah untuk mengemas kini kod git: lihat kod: klon git https://github.com/username/repo.git Dapatkan perubahan terkini: Git mengambil Perubahan Gabungan: Git Gabungan Asal/Master Push Change (Pilihan): Git Push Origin Master

Apa yang Harus Dilakukan Sekiranya Muat turun Git Tidak Aktif Apa yang Harus Dilakukan Sekiranya Muat turun Git Tidak Aktif Apr 17, 2025 pm 04:54 PM

Selesaikan: Apabila kelajuan muat turun git perlahan, anda boleh mengambil langkah -langkah berikut: periksa sambungan rangkaian dan cuba menukar kaedah sambungan. Mengoptimumkan Konfigurasi Git: Meningkatkan Saiz Penampan Pos (Git Config-Global Http.PostBuffer 524288000), dan mengurangkan had berkelajuan rendah (git config --global http.lowspeedlimit 1000). Gunakan proksi Git (seperti Git-Proxy atau Git-LFS-Proxy). Cuba gunakan klien Git yang berbeza (seperti sourcetree atau github desktop). Periksa perlindungan kebakaran

Cara menggunakan komitmen git Cara menggunakan komitmen git Apr 17, 2025 pm 03:57 PM

Git Commit adalah arahan yang merekodkan fail perubahan kepada repositori git untuk menyelamatkan gambar keadaan semasa projek. Cara menggunakannya adalah seperti berikut: Tambahkan perubahan ke kawasan penyimpanan sementara Tulis mesej penyerahan ringkas dan bermaklumat untuk menyimpan dan keluar dari mesej penyerahan untuk melengkapkan penyerahan secara opsyen: Tambahkan tandatangan untuk log penyerahan Git Log untuk melihat kandungan penyerahan

Cara memadam repositori dengan git Cara memadam repositori dengan git Apr 17, 2025 pm 04:03 PM

Untuk memadam repositori Git, ikuti langkah -langkah ini: Sahkan repositori yang anda mahu padamkan. Penghapusan repositori tempatan: Gunakan perintah RM -RF untuk memadam foldernya. Jauh memadam gudang: Navigasi ke tetapan gudang, cari pilihan "Padam Gudang", dan sahkan operasi.

Cara menggabungkan kod dalam git Cara menggabungkan kod dalam git Apr 17, 2025 pm 04:39 PM

Proses penggabungan kod Git: Tarik perubahan terkini untuk mengelakkan konflik. Beralih ke cawangan yang anda mahu bergabung. Memulakan gabungan, menyatakan cawangan untuk bergabung. Selesaikan gabungan konflik (jika ada). Pementasan dan komit gabungan, memberikan mesej komit.

Bagaimana menyelesaikan masalah carian yang cekap dalam projek PHP? Jenis membantu anda mencapainya! Bagaimana menyelesaikan masalah carian yang cekap dalam projek PHP? Jenis membantu anda mencapainya! Apr 17, 2025 pm 08:15 PM

Apabila membangunkan laman web e-dagang, saya menghadapi masalah yang sukar: bagaimana untuk mencapai fungsi carian yang cekap dalam sejumlah besar data produk? Carian pangkalan data tradisional tidak cekap dan mempunyai pengalaman pengguna yang lemah. Selepas beberapa penyelidikan, saya dapati jenis enjin carian dan menyelesaikan masalah ini melalui PHP pelanggan PHP TypeSense/TypeSense-PHP, yang meningkatkan prestasi carian.

Cara mengemas kini kod tempatan di Git Cara mengemas kini kod tempatan di Git Apr 17, 2025 pm 04:48 PM

Bagaimana cara mengemas kini kod git tempatan? Gunakan Git Fetch untuk menarik perubahan terkini dari repositori jauh. Gabungkan perubahan jauh ke cawangan tempatan menggunakan git gabungan asal/& lt; nama cawangan jauh & gt;. Menyelesaikan konflik yang timbul daripada penggabungan. Gunakan git commit -m "gabungan cawangan & lt; nama cawangan jauh & gt;" untuk menghantar penggabungan dan memohon kemas kini.

See all articles