Grovr - Git Worktree'yi kolayca yönetebileceğiniz bir masaüstü uygulaması
(github.com/j1king)AI ile birden fazla işi paralel yürütenler Git Worktree'yi sıkça kullanıyordur.
Ancak Worktree sayısı arttıkça yönetmek zorlaşıyor. Hangi işin nerede olduğu, ilgili ticket'ın ne olduğu ya da PR açılıp açılmadığını tek bakışta anlamak güçleşiyor; ayrıca branch oluşturma veya Worktree geçişi de her seferinde zahmetli oluyor.
Bu yüzden Worktree'leri daha akıllıca yönetmek için Grovr adlı bir masaüstü uygulaması geliştirdim. (Şu anda yalnızca MacOS için)
Başlıca özellikler:
- Worktree listesini tek bakışta görüntüleme
- Tek tıkla IDE açma (VS Code, Cursor, JetBrains IDE vb.)
- Jira ve GitHub entegrasyonu ile ticket/PR durumunu kontrol etme
- Panodan branch adını otomatik çıkarma ve Worktree oluşturma
Worktree'yi sık kullananlar bir denerse çok sevinirim; geri bildirimlerinizi bekliyorum!
Worktree'yi bilmeyenler için kısa bir açıklama da bırakıyorum.
Git Worktree nedir?
Tek bir Git deposunda birden fazla branch'i aynı anda farklı dizinlere checkout edebilmenizi sağlayan bir özelliktir.
Özellikleri (branch ile karşılaştırma):
- Normal branch: Tek bir dizinde
git checkoutile geçiş yapılır, üzerinde çalışılan dosyalar için stash gerekir - Worktree: Her branch için ayrı bir dizin oluşturulur, birden fazla branch üzerinde aynı anda çalışılabilir
.gitklasörü ana depoyla paylaşılır (kopyalama değil, bağlantı yöntemi)
Dizin yapısı örneği:
(Yalnızca bir örnektir, farklı şekilde de yapılandırabilirsiniz)
~/projects/
├── my-repo/
│ ├── .git/
│ └── ...
└── my-repo.worktrees/
├── feature/add-oauth-login/
└── hotfix/fix-payment-error/
Avantajları:
- Branch değiştirmeden birden fazla işi paralel yürütme
- Stash olmadan anında context switching
- Bir Worktree'deki değişiklikler başka bir Worktree'yi etkilemez.
- Birden çok kez clone almaya kıyasla disk alanından tasarruf
Kullanım:
- Yeni Worktree oluşturma:
git worktree add <yol> <branch> - Worktree listesini görüntüleme:
git worktree list - Worktree silme:
git worktree remove <yol>
Henüz yorum yok.