Tutorial Git Lanjutan

Tutorial Git Lanjutan

Menyebarkan projek anda melalui repositori jauh membolehkan anda menguruskan setiap bahagiannya secara fleksibel. Pembaikan pepijat, kemas kini ciri, penghapusan fail, kerja berpasukan, sumbangan sumber terbuka, penyebaran kod, dan banyak lagi kini berada di hujung jari anda dengan pengetahuan yang kuat tentang Git.





Jadi, anda telah menggunakan Git tetapi ingin mengetahui lebih lanjut? Berikut adalah beberapa petua Git yang lebih maju yang menjadikan versi projek anda dapat dikawal.





Cawangan Git

Cabang Git menghalang anda daripada terus masuk ke cabang induk. Sangat berguna jika anda menguruskan projek dengan pasukan pemaju. Anda boleh membuat cawangan Git seberapa banyak yang anda mahukan dan kemudian menggabungkannya ke cawangan induk kemudian.





Buat Cawangan Git

Untuk membuat cawangan Git, gunakan:

git branch branch_name

Tukar ke Git Branch

Gunakan daftar keluar untuk beralih ke cawangan Git:



git checkout branch_name

Setelah beralih ke cawangan, anda dapat membuat perubahan dengan menggunakan git add - semua . Kemudian buat mereka menggunakan git komit -m 'komit nama' arahan.

Bandingkan Cawangan Dengan Tuan

Menggunakan perbezaan git arahan:





git diff master..branch_name

Untuk membandingkan fail tertentu:

git diff master..testb -- main.html

Membandingkan dua cabang serupa dengan bagaimana anda membandingkan cabang dengan induk:





git diff branch1..branch2

Untuk melihat perbezaan fail tertentu antara dua cabang:

git diff branch1..branch2 -- main.html

Tolak Perubahan ke Cabang Jauh

Anda mungkin mahu pembangun lain melihat perubahan yang telah anda buat pada fail di cawangan tempatan anda sebelum meneruskannya. Amalan yang baik adalah mendorong cabang Git tempatan anda ke replika jauh supaya mereka dapat melihatnya.

Mari kita anggap bahawa anda sebelum ini telah membuat cawangan tempatan bernama perubahan . Anda boleh beralih ke cawangan tempatan itu, menyesuaikan semua fail yang anda mahukan, kemudian membuat peringkat dan mengikatnya ke cawangan itu.

Anda kemudian boleh mendorong perubahan tersebut ke cawangan versi jauh:

git push origin changes

Gabungkan Cawangan Jauh Dengan Master Menggunakan Permintaan Tarik

Oleh itu, pengaturcara lain telah mengaudit perubahan di cawangan terpencil ( perubahan ). Tetapi anda mahu menggabungkannya dengan cabang induk dan teruskan.

Ingat bahawa cawangan terpencil anda mewarisi nama cawangan Git tempatan anda ( perubahan ). Inilah cara menggabungkan perubahan:

Tukar ke cawangan induk:

git checkout master

Tarik asal atau KETUA cabang ( perubahan ) untuk menggabungkannya dengan cabang induk:

git pull origin changes

Tolak penggabungan ini secara langsung ke cawangan induk:

git push origin master

Gunakan Git Merge Sebaliknya

Untuk menggabungkan cawangan dengan induk menggunakan pergi arahan:

Berhijrah ke cawangan induk:

git checkout master

Gabungkannya dengan cawangan ( perubahan ):

git merge changes

Kemudian tekan penggabungan secara langsung ke cawangan induk:

pencerminan skrin melalui usb ke tv
git push origin master

Pastikan anda mengganti perubahan dengan nama cawangan anda.

Setelah penggabungan berjaya, anda boleh melakukannya hapuskan cawangan secara tempatan dan dari jauh jika anda tidak memerlukannya lagi:

Berkaitan: Cara Menamakan Semula Cawangan di Git

Git Rebase

Sekiranya anda mempunyai banyak cawangan dengan komitmen yang ketinggalan zaman, anda boleh menyusun semula atau memfokuskan semula kepala / rujukan cawangan tersebut untuk mewarisi kepala / rujukan dari yang dikemas kini.

Oleh itu, pengeluaran semula sangat berguna apabila anda perlu mengemas kini beberapa cawangan dengan asas yang baru.

Melakukan pemulangan semula bukanlah tindakan yang kerap, terutamanya jika anda bekerja dengan pasukan kerana ia boleh mengganggu keseluruhan aliran kerja. Tetapi jika anda bekerja sendirian dan anda biasa dengan aliran kerja dan cawangan anda, penurunan harga tidak boleh menimbulkan kekacauan jika anda tahu di mana dan bagaimana menggunakannya.

Sebagai contoh, anggap anda mempunyai dua cabang; cawangan1 dan cawangan2. Sekarang, anda sudah lama tidak membuat perubahan pada branch1. Tetapi anda secara konsisten melakukan perubahan pada branch2, termasuk baru-baru ini.

Oleh itu, anda memutuskan untuk membawa cabang1 bersama dengan alirannya. Oleh itu, melancarkan semula branch1 ke branch2, bermaksud anda memberitahu branch1 untuk mengabaikan komitmen sebelumnya dan mewarisi komitmen baru yang dibuat pada branch2.

Inilah cara anda boleh melakukannya:

Tukar ke cawangan yang ditinggalkan (cabang1):

git checkout branch1

Kemudian rebase branch1 ke branch2 yang dikemas kini:

git rebase branch2

Git Squash

Git squash membolehkan anda menggabungkan beberapa komit menjadi satu. Ia sangat membantu semasa anda berlari git komit berkali-kali pada satu kemas kini. Contoh praktikal adalah apabila setiap bug fix atau kod refactor untuk satu ciri mempunyai komit yang terpisah.

Tetapi anda mungkin tidak mahu mendorong komitmen HEAD dengan yang menyertainya kerana semuanya mempunyai tujuan yang sama. Pendekatan yang disyorkan adalah dengan memasukkannya ke arah yang salah untuk mengelakkan kekeliruan ketika melakukan pelacakan.

Cara terbaik untuk melakukan skuasy adalah melalui mod rebase interaktif. Lihat contoh di bawah untuk memahami perkara ini dengan lebih baik.

Dalam contoh ini, anggap anda mempunyai lima pembetulan pepijat. Dan ada komitmen untuk masing-masing. Inilah cara anda dapat melancarkan lima komit ini menjadi satu:

Lari git reflog untuk melihat kod hash dari komit anda:

git reflog

Inilah hasilnya dalam kes ini:

Sekarang tujuan anda adalah untuk mengalahkan lima komitmen terakhir, bermula dengan pembetulan pertama sehingga pembetulan kelima .

Untuk melakukannya, salin kod hash dari komit di bawah pembetulan pertama ( 0a83962 ). Kemudian tekan Q untuk berhenti reflog .

Sekarang jalankan git rebase - interaktif pada hash itu.

git rebase --interactive 0a83962

Git kemudian membuka fail rebase interaktif yang kelihatan seperti ini:

Untuk menepis komit, tidak termasuk pembetulan pertama , ganti pilih dengan s untuk setiap yang lain melakukan:

Simpan dan tutup fail ini.

Fail lain kemudian dibuka untuk anda menamakan semula komit yang dihimpit:

Tingkap ruang cakera 100% 10

Bersihkan mereka dan taipkan nama yang disukai untuk komit squashed:

Simpan fail itu. Kemudian tutup dan anda akan menerima mesej kejayaan di terminal anda.

Catatan: Fail interaktif boleh dibuka di dalam terminal. Tetapi jika anda menggunakan Windows, anda mungkin mahu memaksa terminal anda untuk membuka fail secara global ke editor teks kegemaran anda untuk membuat squash menjadi mudah.

Untuk melakukannya, buka baris arahan anda dan jalankan:

git config --global core.editor ''path to choice text editor' -n -w'

Git Fork vs Git Clone

Forking dan pengklonan adalah dua istilah yang berbeza dalam Git. Anda tidak boleh menggunakan repositori anda kerana sudah ada di sana. Walau bagaimanapun, anda boleh mengeluarkan repositori orang lain dan mengklonnya selepas itu.

Memalsukan repositori bermaksud anda mengambil salinan repositori seseorang dan menjadikannya milik anda. Sebaik sahaja anda mendapat salinan repositori itu, anda kemudian dapat mengklonnya seperti mana-mana repositori git anda untuk perubahan tempatan.

Inilah caranya untuk mengklon repositori jauh di GitHub dan mulakan muat turun ke direktori tempatan anda:

git clone https://github.com/username/repository_name.git/

Pulihkan Fail ke Keadaan Lalai

Sekiranya anda ingin membersihkan perubahan dalam fail setelah komit terakhir, anda boleh menggunakan git memulihkan arahan:

git restore filename

Meminda Komitmen

Anda boleh kembali ke komitmen sebelumnya jika anda lupa untuk membuat perubahan pada beberapa fail semasa membuatnya.

Buat perubahan pada fail yang anda lupakan. Kemudian gunakan git meminda untuk mengkaji komit:

git add file_forgotten
git commit --amend

Fail Tidak Tahap

Anda boleh membuang fail tertentu yang telah anda buat untuk menggunakan komit pergi rm arahan:

git rm --cached filename

Anda juga boleh membuang beberapa fail sekaligus:

git rm --cached file1 file2 file3 file4

Ingatlah untuk menambahkan peluasan fail yang berkaitan ke fail yang anda kecualikan. Contohnya, fail teks biasa mestilah nama fail.txt .

Berkaitan: Cara Membersihkan Git dan Membuang Fail yang Tidak Dilacak

Tetapkan semula Git

Menggunakan tetapkan semula git sangat berguna jika anda ingin membuang semua fail yang telah anda buat untuk melakukan komit sekaligus:

git reset

Git reset HEAD, bagaimanapun, menunjuk HEAD cawangan ke komit tertentu di pohon kerja anda. Sebagai contoh, jika anda belum mendorong komitmen semasa, anda boleh kembali ke komitmen yang baru diturunkan:

git reset --soft HEAD~1

Ganti - lembut dengan --keras jika anda telah mendorong komitmen semasa:

git reset --hard HEAD~1

Pergi Balik

Tidak seperti tetapkan semula perintah, pergi balik mengekalkan integriti sejarah komitmen anda. Sangat berguna jika anda ingin mengubah komit kerana kesilapan atau pepijat.

Itu tidak meninggalkan komitmen sasaran atau membuat yang baru. Sebaliknya, ia kembali kepada perubahan baru-baru ini yang anda buat tanpa menghapus atau mengganti nama komitmen tersebut. Ini cara yang baik untuk memastikan komitmen anda lebih bersih, dan lebih selamat daripada menetapkan semula sepanjang masa.

Untuk kembali ke komit:

git revert HEAD~1

Di mana KEPALA ~ 1 menunjukkan komitmen tertentu di pokok kerja anda.

Padam Fail yang dijejaki atau Direktori

Anda boleh menggunakan git rm -f untuk memadam fail yang dijejaki di pokok kerja anda. Namun, perhatikan bahawa Git tidak dapat menghapus fail yang tidak dilacak, kerana ia tidak menyimpannya.

Untuk memadam fail berperingkat:

git rm -f filename

Untuk membuang folder berperingkat:

git rm -r -f foldername

Pembalakan Git

Untuk melihat log dan sejarah komitmen anda di Git:

git log

Untuk mencatat aktiviti di cabang tertentu:

git log branch_name

Berkaitan: Cara Memeriksa Sejarah Projek Dengan log git

Kadang-kadang anda mungkin mahu kembali ke komit yang ditinggalkan. Oleh itu, untuk melihat komitmen yang ditinggalkan, termasuk yang berkaitan:

git reflog

Untuk melihat log ref untuk cawangan tertentu:

git reflog branch_name

Urus Versi Projek Anda Seperti Pro Dengan Git

Dengan Git menawarkan banyak kelebihan, anda dapat menguruskan pelepasan projek anda dari jauh tanpa mencuri fail dan folder di premis di cawangan utama anda. Selain itu, ia membolehkan anda menjalankan projek dengan mudah bersama satu pasukan.

Seperti yang anda lihat, Git mempunyai banyak ciri yang boleh anda terokai. Tetapi berhati-hati menggunakan ciri-ciri ini dengan sengaja. Jika tidak, anda mungkin akan merosakkan perkara. Walaupun begitu, anda masih boleh membuat repositori jarak jauh demo dan bermain-main dengan ciri-ciri ini.

Berkongsi Berkongsi Tweet E-mel Urus Versi File Anda Seperti Pengaturcara Dengan Git

Pengaturcara mencipta sistem kawalan versi (VCS) untuk menyelesaikan masalah kawalan versi fail. Mari kita lihat asas-asas kawalan versi menggunakan sistem teratas hari ini, Git.

Baca Seterusnya
Topik-topik yang berkaitan
  • Pengaturcaraan
  • Pembangunan Web
  • GitHub
  • Tutorial Pengekodan
Mengenai Pengarang Idisou Omisola(94 Artikel Diterbitkan)

Idowu meminati apa sahaja teknologi pintar dan produktiviti. Pada masa lapang, dia bermain-main dengan pengekodan dan beralih ke papan catur ketika dia bosan, tetapi dia juga suka melepaskan diri dari rutin sekali-sekala. Kesungguhannya untuk menunjukkan kepada orang-orang tentang teknologi moden mendorongnya untuk menulis lebih banyak lagi.

Lagi Dari Idowu Omisola

Langgan buletin kami

Sertailah buletin kami untuk mendapatkan petua, ulasan, ebook percuma, dan tawaran eksklusif!

Klik di sini untuk melanggan