Panel Git
Stage, tinjau, commit, dan push di samping shell yang membuat perubahan.
Tekan Cmd+Shift+G. Panel terbuka pada repositori acuan proyek. Lihat direktori proyek untuk cara Zshell memilihnya.
Setiap tindakan adalah perintah Git yang dijalankan Zshell untuk Anda. Keluaran ditampilkan jika ada informasi selain “selesai”. Tidak ada penulisan ulang riwayat, squash, atau force-push tanpa permintaan Anda.
Toolbar Git
Zshell dapat menampilkan toolbar ringkas di bawah tab aktif. Dalam repositori, toolbar menunjukkan cabang saat ini dan total baris ditambah/dihapus; pohon yang tidak berubah mendapat status hijau Bersih (Clean). Berkas yang belum dilacak termasuk dalam jumlah tambahan.
- Klik cabang untuk mencari dan berpindah cabang lokal. Cabang bawaan repositori ditandai dalam daftar.
- Klik jumlah perubahan untuk membuka panel Git.
- Di luar repositori, mode Selalu Tampilkan (Always Show) menyisakan tombol Tidak Ada Repositori Git (No Git Repository) yang membuka keadaan inisialisasi panel.
Pilih Sembunyikan (Hide), Otomatis (Auto), atau Selalu Tampilkan di Pengaturan → Umum, atau atur toolbar.visibility.
Bawaannya Sembunyikan. Toolbar yang terlihat juga dapat disembunyikan dari menu konteksnya.
Berkas berubah
Berkas dikelompokkan menjadi konflik, perubahan yang di-stage, dan yang belum di-stage. Arahkan penunjuk ke baris untuk tombolnya, atau gunakan menu konteks:
| Tombol | Kegunaan |
|---|---|
| + | Stage berkas |
| − | Keluarkan dari staging |
| ↺ | Buang perubahannya |
Buang Semua Perubahan (Discard All Changes) berada di header panel dan meminta konfirmasi terlebih dahulu; ini tindakan yang tidak dapat dibatalkan dengan perintah Git lain.
Berkas konflik menampilkan Tandai Terselesaikan (Stage) (Mark Resolved (Stage)), bukan tombol staging biasa, sehingga penyelesaian merupakan langkah yang disengaja.
Tombol corong di header menyaring daftar menurut nama berkas, cara cepat menelusuri perubahan besar.
Membaca perbedaan
Klik berkas berubah untuk membuka diff dalam panel di samping terminal, bukan menimpanya. Menu konteks juga menyediakan Buka Berkas (Open File) untuk berkas asli yang dapat diedit dan Buka Berkas di Samping (Open File to the Side).
Diff besar tetap responsif. Perubahan seribu berkas terbuka secepat perubahan satu baris dan dapat digulir tanpa tersendat.
Kontrol di atas diff mengingat dua pilihan secara global:
- Terpadu / Terpisah (Unified / Split) beralih antara satu kolom dan tampilan berdampingan.
- Tinjau / Edit (Review / Edit) tersedia untuk berkas belum di-stage dalam pohon kerja aktif. Edit sisi baru secara langsung dan simpan dengan Cmd+S; penanganan penutupan berkas yang belum tersimpan sama seperti editor biasa.
Diff yang sudah di-stage dan diff commit historis tetap hanya baca karena merupakan snapshot, bukan berkas yang aman ditulis Zshell. Mengalihkan satu diff ke Edit atau Terpisah memperbarui preferensi diff terbuka lainnya tanpa membuat diff yang tidak memenuhi syarat menjadi dapat diedit.
Commit
Masukkan pesan lalu gunakan tombol commit, atau pilih dari menunya:
- Commit yang Di-stage (Commit Staged) — commit tepat yang telah Anda stage
- Stage Semua & Commit (Stage All & Commit) — stage semua perubahan yang dilacak lalu commit
- Ubah Commit Terakhir (Amend Last Commit) — gabungkan perubahan staging ke commit sebelumnya
- Stage Semua & Ubah Commit (Stage All & Amend)
Commit terbaru ditampilkan di bawah, dengan Salin Hash Commit (Copy Commit Hash) dan Salin Pesan Commit (Copy Commit Message) pada menu konteksnya.
Cabang
Nama cabang di header adalah menu. Pilih cabang lain untuk berpindah, atau Buat Cabang Baru… (Create New Branch…) untuk memulai cabang dari posisi saat ini.
Pohon kerja
Panel Git menampilkan semua pohon kerja repositori, beserta cabang dan jalur checkout-nya. Checkout aktif ditandai Saat Ini (Current). Klik pohon kerja untuk membuka tab terminal baru pada direktorinya, sehingga setiap checkout memiliki konteks shell sendiri sambil tetap dalam proyek yang sama. Daftar panjang bergulir dalam area terbatasnya sendiri; header bagian, kontrol commit, dan daftar berkas berubah tetap pada tempatnya. Klik header pohon kerja untuk menciutkan atau membukanya.
Pohon kerja dengan HEAD terlepas menampilkan Detached HEAD sebagai pengganti nama cabang. Repositori bare tetap dicantumkan, tetapi tidak memiliki direktori kerja sehingga tidak dapat dibuka dalam tab terminal.
Sesi worktree
Dari terminal dalam repositori Git lokal, pilih Terminal → Sesi Baru di Worktree… atau tekan Cmd+Opt+T. Menu konteks tab dan tombol + menyediakan tindakan yang sama. Pilih cabang lokal baru atau yang sudah ada serta direktori yang belum ada. Cabang baru dimulai dari cabang bawaan repositori; HEAD Saat Ini dapat dipilih secara eksplisit. Cabang yang ada mempertahankan commit saat ini. Direktori yang disarankan berada di sebelah checkout sumber.
Panel yang dibagi mewarisi hubungan worktree sesi, dan tata letak tersimpan memulihkannya. Saat menutup sesi terkait, pilih Pertahankan Worktree, Hapus Worktree, atau Batal. Penghapusan hanya tersedia tanpa file yang diubah, tidak dilacak, atau diabaikan, commit di luar referensi tercatat, kunci, dan sesi terbuka lain yang memakai checkout. Cabang Git selalu dipertahankan.
Terminal eksternal dapat membuat dan menutup sesi dengan zshell +session. Gunakan ID dari projects untuk --project; di dalam Zshell, proyek terminal pemanggil digunakan secara otomatis. Sesi dibuat di latar belakang kecuali Anda menambahkan --focus. --base HEAD atau --base REF memilih referensi lain dan --worktree NEW_DIR menentukan direktori. --connection FILE memilih instans yang berjalan jika diperlukan. Penutupan mempertahankan worktree tanpa --remove-worktree eksplisit; check melaporkan apakah pembersihan saat ini aman.
zshell +session projects
zshell +session new --project PROJECT_ID --cwd /path/to/repo --branch feat/task
zshell +session list --project PROJECT_ID
zshell +session check --project PROJECT_ID --session SESSION_ID
zshell +session close --project PROJECT_ID --session SESSION_ID --remove-worktreeRemote
Menu ⋯ memuat tindakan komunikasi dengan remote:
| Tindakan | Kegunaan |
|---|---|
| Ambil (Fetch) | Perbarui referensi pelacakan remote |
| Tarik (Hanya Fast-forward) (Pull (Fast-forward Only)) | Tarik tanpa membuat commit merge |
| Kirim (Push) | Kirim cabang saat ini |
| Publikasikan Cabang (Publish Branch) | Kirim cabang yang belum memiliki upstream; pilih remote jika ada beberapa |
| Sinkronkan Perubahan (Sync Changes) | Tarik fast-forward, lalu push |
| Simpan Semua ke Stash (Stash All Changes) | Simpan semua perubahan, termasuk berkas belum dilacak |
| Pulihkan Stash (Pop Stash) | Pulihkan stash terbaru |
Lencana di samping cabang menunjukkan seberapa jauh ↓ tertinggal dan ↑ mendahului upstream.
Menu yang sama menyediakan Salin Jalur Berubah (Copy Changed Paths), Salin Jalur Repositori (Copy Repository Path), dan Tampilkan Repositori di Finder (Reveal Repository in Finder).
Pull sengaja dibatasi pada fast-forward. Jika merge atau rebase sungguhan diperlukan, Git memberi tahu dan Anda memutuskan di terminal; panel tidak memilih strategi untuk Anda.
Belum menjadi repositori
Jika direktori proyek belum memiliki repositori, panel menawarkan Inisialisasi Repositori (Initialize Repository) yang menjalankan git init dalam folder itu. Sebelum itu, panel tidak mengganggu pekerjaan Anda.
Meninjau giliran agen
Klik Tinjau Perubahan… di panel Git.
- Giliran Terakhir membandingkan snapshot awal dan akhir agen terpilih, termasuk semua suntingan pada interval itu, siapa pun penulisnya.
- Belum Dikomit membandingkan HEAD dengan pohon kerja, termasuk file di staging dan yang belum dilacak.
- Seluruh Branch membandingkan leluhur bersama dengan branch dasar terpilih ke pohon kerja, termasuk commit dan file yang belum dikomit.
Pilih file dan bagian perubahan. Pada Giliran Terakhir, Pertahankan Bagian mencatat tinjauan; Kembalikan Bagian membalik perubahan di pohon kerja. Keduanya tidak mengubah indeks Git. Snapshot asli dan keputusan tetap ditampilkan.
Pengembalian ditolak jika file atau HEAD berubah, jalurnya tidak aman, ada agen aktif, atau giliran tumpang tindih. Perubahan biner dan izin saja hanya dapat dibaca. File di atas 5 MiB tidak tersedia; demikian pula snapshot di atas 2.048 jalur berubah, 25 MiB konten, atau batas waktu perekaman.
Snapshot berlaku selama sesi aplikasi saat ini. Dibutuhkan peristiwa awal dan akhir yang andal. Pi, OpenCode, dan Grok memiliki integrasi native. Prompt terlindungi merekam awal, tetapi tetap memerlukan peristiwa selesai. Tanpanya, tidak ada snapshot giliran selesai.