Berbagi teknologi

Tutorial Git

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Alat kontrol versi terdistribusi Git

​ Git adalah sistem kontrol versi terdistribusi sumber terbuka yang dapat menangani manajemen versi proyek dari proyek yang sangat kecil hingga sangat besar secara efisien dan dengan kecepatan tinggi.

Git didistribusikan. Git tidak memerlukan server pusat. Setiap komputer kita memiliki hal yang sama. Kami menggunakan Git dan memiliki server pusat hanya untuk memfasilitasi pertukaran modifikasi semua orang, tetapi status server ini sama dengan PC kami masing-masing. Kita dapat menggunakan server ini sebagai PC pengembang, agar setiap orang dapat dengan mudah berkomunikasi satu sama lain tanpa mematikan komputer. Setiap orang masih dapat bekerja tanpa server ini, tetapi modifikasi "pertukaran" tidak nyaman.
Masukkan deskripsi gambar di sini

pendekatan pengontrol versi

Alat kontrol versi terpusat

​Alat kontrol versi terpusat, pustaka versi disimpan di server pusat. Semua orang di tim mengunduh kode dari server pusat saat bekerja, agar dapat berfungsi, mereka harus terhubung ke Internet, baik jaringan area lokal atau Internet. Kirimkan modifikasi pribadi ke repositori pusat. Seperti: SVN, CVS
Masukkan deskripsi gambar di sini

Alat kontrol versi terdistribusi

​ Tidak ada "server pusat" dalam sistem kontrol versi terdistribusi. Komputer setiap orang memiliki perpustakaan versi yang lengkap. Saat bekerja seperti ini, tidak perlu terhubung ke Internet, karena perpustakaan versi ada di komputer Anda sendiri. Ketika beberapa orang berkolaborasi, mereka hanya perlu saling mendorong modifikasi mereka, dan kemudian mereka dapat melihat modifikasi satu sama lain. Seperti: Git

Perintah umum

Alur kerja Git
Masukkan deskripsi gambar di sini

  • klon: Mengkloning kode dari repositori jarak jauh ke repositori lokal

  • Periksa: Periksa cabang gudang dari gudang lokal dan lakukan modifikasi

  • menambahkan: Kirimkan kode ke staging area sebelum mengirimkannya

  • melakukan: Kirim ke gudang lokal, dan simpan versi historis yang dimodifikasi di gudang lokal

  • mengambil: Ambil dari perpustakaan jarak jauh ke gudang lokal tanpa tindakan penggabungan apa pun.

  • menarik: Tarik dari perpustakaan jarak jauh ke perpustakaan lokal dan secara otomatis menggabungkan (menggabungkan), lalu letakkan di ruang kerja, yang setara denganfetch merge

  • dorongan: Dorong kode ke gudang jarak jauh

  • git config:Informasi konfigurasi

    # 设置用户信息
    git config --global user.name "userName"
    git config --global user.email "Email"
    
    # 查看配置信息
    git config --global user.name
    git config --global user.email
    
  • alias: Alias ​​perintah konfigurasi, di~/.bashrcTambahkan konfigurasi dan perlu menjalankannya setelah modifikasi selesai.source ~/.bashrc

    # 部分windows系统不允许用户创建.开头的文件,可以在gitBash中执行
    touch ~/.bashrc
    
    # 在~/.bashrc中添加内容,输出git提交日志
    alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
    
  • git init: Inisialisasi direktori saat ini sebagai gudang git. Setelah eksekusi berhasil, akan ada beberapa.gitmap

  • git status: Melihat status modifikasi (Tempat penyimpanan sementara, area kerja)
    Masukkan deskripsi gambar di sini

  • git add: Menambahkan modifikasi pada satu atau beberapa file di ruang kerja ke staging area

    git add 单个文件名 | 通配符
    
    # 将所有修改加入到暂存区
    git add .
    
  • git commit: Menyerahkan isi staging area ke cabang gudang setempat yang ada,git commit -m '注释内容'

  • git log: Melihat log pengiriman dan mengonfigurasi aliasgit-log

    git log [option]
    	--all 显式所有分支
    	--pretty=oneline 将提交信息显示为一行
    	--abbrev-commit 使得输出的commitId更简短
    	--graph 以图的形式显示
    
  • git reset: Pengembalian versi

    # 查看已经删除的记录,可以看到已经删除的提交记录
    git reflog
    
    # 版本切换,commitId可以通过git log查看
    git reset --hard commitId
    
  • git branch: Melihat cabang lokal. Menggunakan cabang berarti pekerjaan dapat dipisahkan dari jalur pengembangan utama untuk memperbaiki bug dan mengembangkan fitur baru, agar tidak mempengaruhi jalur utama.

    • menguasai(Produksi) Cabang: cabang online, cabang utama, cabang yang berhubungan dengan proyek kecil dan menengah sebagai aplikasi yang berjalan online

    • mengembangkan(mengembangkan) cabang: Ini adalah cabang yang dibuat dari master. Umumnya digunakan sebagai cabang pengembangan utama dari bagian pengembangan. Jika tidak ada persyaratan pengembangan paralel lainnya untuk berbagai fase pengembangan online, pengembangan dapat dilakukan dalam versi ini fase pengembangan selesai, perlu digabungkan ke dalam cabang master dan bersiap untuk online.

    • feature/xxx cabang: Cabang yang dibuat dari pengembangan. Biasanya dikembangkan secara paralel pada waktu yang sama, tetapi dibuat ketika peluncurannya tidak dalam periode yang sama. Setelah tugas penelitian di cabang tersebut selesai, cabang tersebut digabungkan ke dalam mengembangkan cabang.

    • cabang hotfix/xxx: cabang turunan dari master, umumnya digunakan untuk perbaikan bug online. Setelah perbaikan selesai, cabang tersebut perlu digabungkan ke dalam cabang master, pengujian, dan pengembangan.

    • tes(tes) cabang

    • pra(Pra-peluncuran) cabang
      Masukkan deskripsi gambar di sini

    # 查看本地分支
    git branch
    
    # 创建本地分支
    git branch 分支名
    
    # 切换分支
    git checkout 分支名
    
    # 切换到一个不存在的分支,创建并切换
    git checkout -b 分支名
    
    # 合并分支,一个分支上的提交可以合并到另一个分支
    git merge 分支名
    
    # 删除分支,不能删除当前分支,只能删除其它分支
    # 删除时需要做各种检查
    git branch -d 分支名
    # 强制删除,不做任何检查
    git branch -D 分支名
    
  • Resolusi konflik: Ketika modifikasi pada file di dua cabang mungkin menimbulkan konflik, misalnya baris yang sama dari file yang sama diubah pada waktu yang sama, konflik tersebut perlu diselesaikan secara manual.

    1. Menangani konflik dalam file
    2. Tambahkan file yang diselesaikan dengan konflik ke area penyimpanan sementara (menambahkan)
    3. Kirim ke gudang (melakukan)

Gudang terpencil

  • git remote add: Tambahkan gudang jarak jauh. Operasi ini untuk menginisialisasi perpustakaan lokal terlebih dahulu dan kemudian menghubungkannya ke perpustakaan jarak jauh yang dibuat.

    git remote add