Git Worktree
Son güncelleme
git worktree, tek bir deponun aynı anda her biri farklı bir dalda olan birden fazla çalışma dizinine sahip olmasını sağlar. Dal değiştirmek için çalışmanızı stash'lemek yerine, diğer dalı ayrı bir klasörde checkout edersiniz - bir PR inceleyin, bir hotfix çalıştırın veya bir dalı düzenlerken başka bir dalı derleyin, hepsi aynı .git geçmişini paylaşarak.
Bunları terminal playground'da deneyin - tarayıcınızda gerçek bir kabuk, kurulacak bir şey yok.
Söz dizimi
| Command | What it does |
|---|---|
git worktree add ../hotfix hotfix | hotfix dalını kardeş bir klasörde checkout eder |
git worktree add -b new ../new | Bir dal ve onun için bir worktree oluşturur |
git worktree list | Tüm worktree'leri ve dallarını listeler |
git worktree remove ../hotfix | Bir worktree'yi kaldırır |
git worktree prune | Eskimiş worktree kayıtlarını temizler |
Uygulamalı örnek
Özellik dalınıza dokunmadan main üzerinde bir hatayı düzeltin.
| Step | Command | Result |
|---|---|---|
| 1 | git worktree add ../fix main | main, ../fix içinde checkout edildi |
| 2 | ../fix içinde düzeltin ve commit'leyin | Hotfix main üzerinde tamam |
| 3 | git worktree remove ../fix | Temizlik; özellik dalına dokunulmadı |
git worktree SSS
git worktree nedir?
Bir worktree, aynı depoya bağlı, farklı bir dala veya commit'e checkout edilmiş ek bir çalışma dizinidir. Birden fazla dalı aynı anda ayrı klasörlerde checkout etmenizi sağlar, hepsi tek bir
.git geçmişini paylaşır - böylece iki dalda aynı anda çalışmak için stash'lemek veya klonlamak zorunda kalmazsınız.Bir worktree'yi nasıl eklerim?
git worktree add <path> <branch> komutunu çalıştırın, örneğin git worktree add ../hotfix hotfix. Git o dalı yeni klasöre checkout eder. Aynı anda yeni bir dal oluşturmak için git worktree add -b <newbranch> <path> kullanın.Dal değiştirmek yerine ne zaman worktree kullanmalıyım?
Dal değiştirmenin sorun yaratacağı durumlarda kullanın - commit edilmemiş çalışmanız var, kesmek istemediğiniz uzun bir derleme var veya iki dalı yan yana karşılaştırmanız gerekiyor. Bir worktree, diğer dalı mevcut olana dokunmadan kendi klasöründe verir.
Bir worktree'yi nasıl kaldırırım?
git worktree remove <path> komutunu çalıştırın. Klasör elle silindiyse, eskimiş kayıtları temizlemek için git worktree prune çalıştırın. Ana worktree'yi (orijinal depo klasörünü) kaldıramazsınız, yalnızca eklediğiniz ekleri kaldırabilirsiniz.Bunu çevrimiçi olarak deneyebilir miyim?
Evet.
git worktree komutunu tarayıcınızda gerçek bir kabukta çalıştırmak için terminal playground'u açın - kurulacak bir şey yok. Coddy'nin ücretsiz etkileşimli Git kursu, dallanma iş akışlarını da adım adım kapsar.