Git ve Github Nasil Kullanilir

Dağıtık Versiyon Kontrol Sistemleri‘nden biri olan Git için yönetim ortamı sunan github, bitbucket gibi sitelerin olması, açık kaynak dünyası tarafından tercih edilmesi sebebiyle her geçen gün daha popüler hale geliyor. 

Git komutlarını anlamak açısından nasıl çalıştığına biraz daha yakından bakalım. 

Dosya Silme 

Commit'lediğimiz bir dosyayı silmek için:



Git rm dosya_adı git push kökenli bulunduğumuz_dal_ismi


Bu adım yapılan her değişikliğin uzak depoya gönderilebilmesi için yapılmalıdır. Ancak bu komut ile dosya silinir. Dosyayı geri döndürmek mümkün olmakla beraber dosya silindikten sonra commit mesajları tutulmaya devam eder. 

Dosyayı geri döndürme ise dosyanın loglarının tutuluyor olması ile mümkündür. 


Git revert silinen_dosya_log_id


Kayda Hazırlanmış Bir Dosyayı Hazırlık Alanından Kaldırmak

benchmarks.rb dosyasını hazırlık alanından kaldıralım:

$ git reset HEAD benchmarks.rb benchmarks.rb: locally modified
  $ git status
  # On branch master
  # Changes to be committed:
  # (use "git reset HEAD <file>..." to unstage)
  # modified: README.txt
  # Changed but not updated:
  # (use "git add <file>..." to update what will be committed)
  # (use "git checkout -- <file>..." to discard changes in working directory)
  # modified: benchmarks.rb


"benchmarks.rb" dosyası hazırlık alanından kaldırıldı ama hâlâ değişmiş olarak görünüyor.

Son Kayıt İşlemini Değiştirmek


Eğer kaydı çok erken yapmışsanız, bazı dosyaları eklemeyi unutmuşsanız ya da kayıt mesajında hata yapmışsanız, sık rastlanan düzeltme işlemlerinden birini kullanabilirsiniz. Kaydı değiştirmek isterseniz, commit komutunu --amend seçeneğiyle çalıştırabilirsiniz:



$ git commit --amend

Bu komut, hazırlık alanındaki değişiklikleri alıp bunları kaydı değiştirmek için kullanır. Eğer son kaydınızdan beri hiçbir değişiklik yapmamışsanız o zaman kaydınızın bellek kopyası aynı kalacak ve değiştireceğiniz tek şey kayıt mesajı olacaktır.


Değişmiş Durumda ki Bir Dosyayı Değişmemiş Duruma Geri Getirme


$ git checkout -- benchmarks.rb
 $ git status
 # On branch master
 # Changes to be committed:
 # (use "git reset HEAD <file>..." to unstage)
 # modified: README.txt

Gördüğünüz gibi değişiklikler çöpe atıldı. Bunun tehlikeli bir komut olduğunu aklınızdan çıkarmayınız. O dosyaya yaptığınız bütün değişiklikler şimdi yok oldu.


Tüm Kayıttan Bir Dosyayı Kaldırma


> $ git filter-branch --tree-filter 'rm -f passwords.txt' HEAD
Rewrite 6b9b3cf04e7c5686a9cb838c3f36a8cb6a0fc2bd (21/21)
Ref 'refs/heads/master' was rewritten


"passwords.txt" adlı dosyayı tüm geçmişten kaldırmak için filter-branch seçeneği olan "--tree-filter" kullanılabilir.


Git ve Github hakkında ki yazılarım devam edecek...Takipte kalınız...

Bu konuda ki daha önceki yazılarım:


Github Nedir ve Ne İşe Yarar?