Peta dunia

 

EN: Read in English

Dunia 10: Git Mendalam

git worktree

Anda akan belajar: cara kerja di dua branch serentak, dalam dua folder, dengan satu repo.

Teks BM belum disemak oleh penutur asli.

Masalahnya

Anda separuh jalan buat perubahan besar. Kemudian ada laporan pepijat: baiki main sekarang juga! Cara mana yang tak usik kerja separuh siap anda?

Pilih satu jawapan.

Tengok

git worktree add buat ../diary-fix di branch baru fix. git worktree list tunjuk dua folder: diary di main dan diary-fix di fix. Output terminal: $ git worktree add ../diary-fix -b fix Preparing worktree (new branch 'fix') HEAD is now at e0b2bc1 Add day 2 $ git worktree list /home/you/diary e0b2bc1 [main] /home/you/diary-fix e0b2bc1 [fix]

git worktree add buat folder kerja kedua, di branch (cabang) sendiri. Repo sama, sejarah sama. Setiap folder ialah worktree: Folder kerja tambahan untuk repo yang sama, di branch sendiri..

Cuba

Buat worktree di ../diary-fix pada branch baru bernama fix.

04b414ee0b2bc1

Teka

Anda commit pembaikan dalam diary-fix. Kemudian anda balik ke diary. Boleh nampak commit itu di sana?

Pilih satu jawapan.

Tengok

Selepas git worktree remove, senarai tunjuk diary sahaja. git branch masih senaraikan fix dan main. Output terminal: $ git worktree add ../diary-fix -b fix Preparing worktree (new branch 'fix') HEAD is now at e0b2bc1 Add day 2 $ git worktree remove ../diary-fix $ git worktree list /home/you/diary e0b2bc1 [main] $ git branch fix * main

Dah siap? git worktree remove padam folder tambahan itu. Branch dan commitnya kekal selamat.

Semak

Susun perjalanan baiki pepijat ini.

Langkah pertama di atas. Susun ikut turutan. Guna anak panah, atau seret.

  • Baiki pepijat dan commit
  • cd ../diary-fix
  • git worktree add ../diary-fix -b fix
  • git worktree remove ../diary-fix
  • cd ../diary

Anda berjaya!

Kini anda boleh kerja di dua branch serentak, dalam dua folder.

Nak tahu lebih (pilihan)

Satu branch hanya boleh di-checkout dalam satu worktree pada satu masa. Git tolak yang kedua. git worktree remove menolak kalau folder itu ada perubahan; --force buang perubahan itu. Terpadam folder worktree dengan tangan? git worktree prune bersihkan nota Git tentangnya.