Visual Studio Code ile Git Rebase İşlemi
Gerekli Eklentiler ve Kurulum (macOS)
Eklentiler kurulduktan sonra Git için default editor ‘ün VS Code olarak ayarlanması gerekmektedir. VS Code yeniden başlatıldıktan sonra aşağıdaki işlemler yapılarak git kurulumu bir defaya mahsus olarak gerçekleştirilmelidir.
CMD + Shift + A tuşuna basılır ve açılan pencerede arama kısmına install yazılarak VS Code command line tool kurulur.
Aşağıdaki komut çalıştırılarak default git editörü VS Code olarak ayarlanır.
git config --global core.editor "code --wait"
Projeyi VS Code ile Açma
Aşağıdaki adımlar ile proje klasörü seçilip VS Code ile açılmalıdır.
Proje açıldıktan sonra Source Control bölümünde bulunan Branches kısmından ilgili development branch ‘i seçilir ve yeni branch açılır.
Yeni açılan branch remote ‘a gönderilmemelidir. Rebase işlemi tamamlandıktan sonra remote ‘a push edilmelidir.
Yeni Branch Oluşturma
İlgili branch listede bulunduktan sonra aşağıdaki button yardımı ile o branch ‘e geçilir.
Branch ismine sağ tıklanılıp Create Branch seçeneği ile yeni branch oluşturulur ve yeni branch ‘e switch edilir.
Rebase İşlemi
Rebase alınacak branch sağ tıklanıp Rebase Current Branch onto Branch… seçeneği yardımı ile rebase başlatılır.
Rebase edilecek commitlerin listesini görebilmek için Interactive Rebase seçeneği seçilir. Rebase seçeneği command line kullanım içindir.
Commit Seçimi
Rebase işlemi başlatıldığında commit seçim ekranı otomatik olarak açılır.
Her commit için pick, drop, squash gibi seçenekler gelmektedir.
Pick: İlgili commit rebase işlemine dahil edilir.
Reword: İlgili commit rebase işlemine dahil edilir, fakat commit mesajının değiştirilmesine izin verilir.
Squash: İlgili commit bir alttaki commit ile birleştirilip tek commit haline getirilir.
Squash: İlgili commit bir alttaki commit ile birleştirilip tek commit haline getirilir.
Drop: İlgili commit tamamen kaldırılır.
Start Rebase seçeneği ile rebase işlemi başlatılır.
Conflicts Çözümü
Rebase işleminde conflicts çözümleri commit bazlı olmaktadır. Her commit için ayrı ayrı conflict çözülmelidir. Start Rebase seçeneği ile işlem başlatıldıktan sonra Source Control bölümünden ilgili değişiklik ve conflicts görülmektedir.
Silinen bir dosya staged changes’e alınarak silinebilir. Eğer içerisinde yapılan değişiklik farlı bir dosyaya taşındıysa bu aşamada o işlem gerçekleştirilir.
Yanında ! işareti bulunan bir dosya conflicts içermektedir. Dosya açıldıktan sonra conflict çözümü için Accept Current Change, Accept Incoming Change buttonları kullanılarak conflict çözümü sağlanır. Bu kısımda dosya üzerinde değişiklik hakkı vardır. İhtiyaç halinde değişiklik de yapılabilir.
Aşağıdaki case ‘de ilgili kod bloğu farklı bir yere taşınmış fakat kod bloğu içinde bir satır değiştirilmiş. Bu satırlar manuel olarak değiştirilip Accept Current Change seçeneği ile ilerlenmelidir. Aşağıda mevcut kod ve conflict ile gelen fark gösterilmektedir.
Burada conflict de yapılan değişiklik yeni yerine taşınmalıdır.
Conflicts çözüldükten sonra dosyalar Staged Changes ‘e alınır ve Continue seçeneği ile bir sonraki commit’e geçilir.
İşlem tamamlandıktan sonra branch publish edilmeye hazırdır.
Abort Rebase
Conflict çözümünde bir hata yapıldığında rebase abort edilebilir. Visual Studio Code ‘un terminal ekranı açılır ve aşağıdaki komut çalıştırılarak rebase işlemi abort edilebilir.
git rebase --abort