GIT Helper Fonksiyonu
Introduction
ÖN BILGILENDIRME: Bu yazı, GIT commit işlemlerini sistem çapında otomatikleştirme yöntemleri hakkında bilgi vermek amacıyla yazılmıştır.

Siz de Open-Source projelerle yoğun olarak çalışıyorsanız çok fazla commit yaptığınız projelerle karşı karşıya geliyorsunuz demektir. Git üzerinde push/pull request işlemlerinizi yaparken tekrar tekrar şifre ve username girmek eğer çok fazla commit yapıyorsanız sinir bozucu olabiliyor.
VSCode üzerinden push işlemleri yaparken bir kere GIT_ACCESS_TOKEN ve GIT_USERNAME girişi yaptıktan sonra bu işlemleri sürekli olarak gerçekleştirebiliyorsunuz. Peki, Neovim kullanıcısı iseniz, Neovim'den çıkmadan git push ve pull işlemlerinizi GIT_USERNAME ve GIT_ACCESS_TOKEN tek bir tuşla push/pull edebileceğinizi biliyor muydunuz?
Bu yazımda size kısaca bunu yapmak için gerekli ilk konfigurasyondan bahsedeceğim.
.gitconfig configurations
İlk iş olarak sistem genelinde GIT_USERNAME ve GIT_ACCESS_TOKEN tanıması gerçekleştirebilmek için .gitconfig dosyamıza aşağıdaki helper fonksiyonun ekleyeceğiz.
Linux içerisinde $HOME 'a erişebilmek için cd ile /home/ klasörüne giderek bir .gitconfig dosyası oluşturuyoruz. Eğer mevcut bir config dosyanız varsa o zaman [credential] altına aşağıdaki helper fonksiyonunu ekleyin:
# HOME
cd
# open .gitconfig file
nvim .gitconfig
Açılan dosyanın içerisine aşağıdaki gibi kendinize ait bir yapı oluşturun. Kendi kullanıcı adınızı [user] alanı altında giriş yapın ve helper fonksiyonun aşağıdaki şekilde kopyalayıp yapıştırın ve dosyanızı kaydedin.
[user]
email = ....@yandex.com
name = G... B....
[credential]
helper = "!f() { echo \"username=${GIT_USERNAME}\"; echo \"password=${GIT_ACCESS_TOKEN}\"; }; f"
[core]
editor = nvim
Helper fonksiyonu yardımıyle kabuk üzerinde yapacağımız işlemlerde username kısmına otomatik olarak GIT_USERNAME ve access_token alanına da GIT_ACCESS_TOKEN isimli sistem genelinde tanımlı değişkenleri çağırıyoruz.
Helper Function: : Yardımcı fonksiyon, başka bir fonksiyonun hesaplanmasının bir kısmını gerçekleştiren bir fonksiyondur. Yardımcı işlevler, hesaplamalara açıklayıcı adlar vererek programlarınızın okunmasını kolaylaştırmak için kullanılır.
zshrc and bashrc configurations
Sisteminizde kullandığınız kabuğa bağlı olarak (shell) aşağıdaki iki satırı bu kabuğa ait konfigurasyon dosyasına kopyalıp yapıştırıyoruz.
# HOME directory
cd
# if you are using zsh
nvim .zshrc
# if you are using bash
nvim .bashrc
.zshrc ya da .bashrc dosyanızın herhangi bir yerine aşağıdaki değişkenleri ekleyin. <your-access-token> alanına Github üzerinden aldığınız GIT_ACCESS_TOKEN ı yapıştırın.
GIT_USERNAME="<your-username>"
GIT_ACCESS_TOKEN="<your-access-token>"
Lazygit
Lazygit git ile ilgili tüm işlemleri tek bir ekran üzerinden yönetmenizi sağlayan bir dashboard ve git managerdır. Commit dosya ekleme ve dosya çıkarma, ignore, merge, branch, pull/push gibi birçok git komutunu bu arayüz sayesinde yönetebilirsiniz.

Lazygit Setup and Configurations
Eğer Astro.nvim kullanıcısı iseniz sisteminizde lazygit yüklü olarak kullanıma başlarsınız. Eğer kurulum yapmanız gerekirse aşağıdaki adımları takip edin.
Eğer Neovim içerisinde Lazy paket yöneticisi kullanıyorsanız aşağıdaki kod satırını kullanarak yükleme yapabilirsiniz:
-- nvim v0.8.0
return {
"kdheepak/lazygit.nvim",
cmd = {
"LazyGit",
"LazyGitConfig",
"LazyGitCurrentFile",
"LazyGitFilter",
"LazyGitFilterCurrentFile",
},
-- optional for floating window border decoration
dependencies = {
"nvim-lua/plenary.nvim",
},
-- setting the keybinding for LazyGit with 'keys' is recommended in
-- order to load the plugin when the command is run for the first time
keys = {
{ "<leader>lg", "<cmd>LazyGit<cr>", desc = "LazyGit" }
}
}
Lazygit Usage
Lazygit resmi web sayfası üzerinden kullanıma ve tuş kombinasyonlarına ait gerekli bilgileri Github - Lazygit web sayfası üzerinden öğrenebilirsiniz.
Ayrıca typecraft_dev kanalı üzerinden lazygit anlatımını da bulabilirsiniz.