Rehber Git Kullanım Kılavuzu

mbtt

Deneyimli Üye
Deneyimli Üye
MIUI Sever
Adım
Lütfi
Cihazım
Le Pro3
Yaş
26
Konum
ankara
Katılım
22 Mayıs 2016
Konular
68
Mesajlar
102
Tepkime puanı
214
Puanları
43
AÇIKLAMA
Bu kılavuz ile basit Git sistemi kullanımını öğrenebilirsiniz.

Ricam bu kılavuzdan yardım aldıysanız konunuzun teşekkürler kısmında benimde ismim geçsin.


ANLATIM
Git Sistemini Anlamak
GitHub, sürüm kontrol sistemi olarak Git kullanan yazılım geliştirme projeleri için web tabanlı bir depolama servisidir.
GitHub özel depolar için ücretli üyelik seçenekleri sunarken, açık kaynaklı projeler için ücretsizdir.

(Dümdüz copy-paste burası Wikipedia'dan.:troll:)

Git Sistemi Kurulumu
a-) Windows İçin

bilgisayarınızın arm sürümüne uygun olanı indirin. (64bitse 64bit 32 ise 32 olanı indirin.)
Ardından inen programın kurulumunu yapın varsayılan ayarlara dokunmanıza gerek yoktur.

ile anlatımı için verdiğim linkte açılan saniyeden sonrasını inceleyebilirsiniz.


b-) Linux İçin

Aşağıdaki komutları terminale veriniz.

1-) Ubuntu ve Ubuntu Tabanlı Dağıtımlarda

Kod:
apt-get install git

ya da

Kod:
sudo apt-get install git


2-) Arch ve Arch Tabanlı Dağıtımlarda

Kod:
pacman -S git


3-) Fedora ve Fedora Tabanlı Dağıtımlarda

Fedora 21'e kadar olan sürümler için:

Kod:
yum install git

Fedora 22 ve sonrası için:

Kod:
dnf install git

4-) Gentoo ve Gentoo Tabanlı Dağıtımlarda

Kod:
emerge --ask --verbose dev-vcs/git


c-) Mac İçin

indirip kurulum talimatlarını izleyebilirsiniz.

Git Sistemine Giriş Yapmak
Kendinize üzerinden bir hesap oluşturduktan sonra

a-) Github'a kayıt olduğunuz ismi bilgisayardan da tanıtmak için:

Kod:
git config --global user.name "isim"


Örneğin:

Kod:
git config --global user.name "Mbtt"


b-) Github'a kayıt olduğunuz email adresini bilgisayardan da tanıtmak için:

Kod:
git config --global user.email "email adresi"


Örneğin:

Kod:
git config --global user.email "cmsizcm@gmail.com"

Bu komutları verdikten sonra indirip kurulum yaptığınız sisteme giriş yapmış olursunuz.
Bu aşamadan sonrasında atacağınız commitler bu hesap üzerinde görünecektir.

Dilerseniz aynı komutları farklı isimlerle kullanarak eğer Github'da hesap değişmiş ya da yeni açmışsanız bilgisayardan da değişebilir / yeni açabilirsiniz.

Dosyaları Kaynak Olarak Tanıtmak
Git sistemiyle düzenlemek istediğiniz dosyaları tanıtma kısmıdır.

Basitçe Git'e yüklemek istediğiniz dosyaların olduğu dizine gelip;

Örneğin : device/leeco/zl0

Bu dizinde ;

Kod:
git init

komutunu vermektir.

Görsel olarak anlamak için aşağıdaki videoyu başlatarak, açılan saniyeden sonrasını inceleyebilirsiniz.

Medyaları görmek için kayıt olmalısınız

Github Üzerinden Kaynak İndirme
Github'dan bir kaynağı bilgisayarınıza / diskinize / serverinize kaydetmek için kaynak linkini bulun ve ;

git clone -b sürüm kaydetmek/istediğiniz/yer

Yukarının açıklaması şu şekildedir :

Kod:
https://github.com/sahip-ismi/kaynak-linki.com

olarak belirttiğim kısım kaynak linkidir. Sahip ismide kaynak ismine dahildir. Zaten linki kopyalayacaksınız tatavaya gerek yok :troll:

Örneğin:

Kod:
sürüm

olarak belirttiğim kısım sürümdür. (Yapma yav bak sen :troll: )

Örneğin: cm-13.0

Kod:
kaydetmek/istediğiniz/yer

olarak belirttiğim kısımlar kaydetmek istediğiniz klasör dizinidir.

Örneğin: device/leeco/zl0

Yani device adında bir klasör oluşturup içine bir leeco ve onunda içine bir zl0 klasörü oluşturur.

Özet bir örnek verecek olursam benim zl0 device kaynaklarını çekmek için vermem gereken kod şudur :

git clone -b cm-13.0device/leeco/zl0

Dosya Ekleme
Kod:
git add .


Yukarıdaki komut dosya eklemek içindir.

Örneğin: Bir config.xml dosyası eklemek istiyorsunuz.

Vermeniz gereken kod :

Kod:
git add config.xml


Eğer bu config xml'i kaynak klasörlerinizin altında bir yerde ;

Örneğin: device/leeco/zl0/overlay/frameworks/base/core/res/res/values altında ise :troll:

Vermeniz gereken kod şudur :

Kod:
git add device/leeco/zl0/overlay/frameworks/base/core/res/res/values/config.xml


Ama genel olarak bir dosya dizini ekleyecekseniz :

git add . (yani sonuna nokta koyun.)

Bu bütün dosyaları (yeni eklenen ya da kaynak hiç Github'a yüklenmemişse bütün kaynak) yüklemek için tanıtır.

Mesela ben zl0 cihazının tüm dosyalarını ilk seferde yüklemek için "git add ." komutunu kullandım.

Görsel olarak anlamak için aşağıdaki videoyu başlatarak, açılan saniyeden sonrasını inceleyebilirsiniz.

Medyaları görmek için kayıt olmalısınız

Commit Olgusu
Kod:
git commit .


ana komutumuzdur.

Amacı ise yapılan değişiklikleri Github'a yüklemek için mesaj ve bilgilendirme oluşturmaktır.

Örneğin: değişikliklerinizi yaptınız ve Githuba yüklemek istiyorsunuz :

git commit -m "mesajınız" şeklinde atacaksınız.

Kendim tek bir yönde değişiklik yapıp onu yüklüyorum genellikle.

Örneğin: zl0 (Pro3 Elite) cihazının tanıtım kapağını hazırladım. Ve bunu yükledim.

Bunun için README.md dosyası oluşturdum.

İçini düzenledim.

"git add . "

"git commit ."

sırasıyla yukardaki komutları izledim.

Ve çıkan notepad++ ekranında (ki varsa varsayılan yazı editörü olarak git programı seçiyor) ilk satıra commit başlığını yazdım. "Specsheet"

Ancak basit bir commit olduğu için açıklama yazma gereği duymadım. Daha sonra editörde kaydedip çıktım.

Kimi commitler ise ayrıntılı şekilde açıklama ister.

Örneğin:

LineageOS , AICP , Omni gibi rom kaynakları atılan commitlerin düzeni ve içeriğine dikkat ederler.

Bir kişi driver güncellediğinde kernelde neden güncellediğini neden o sürüme güncellediğini kısa ve ayrıntılı şekilde anlatır.

Bu açıklama ise ikinci ve diğer satırlara yazılır :

Örneğin:

Specsheet -> Commit başlığı

Adding specsheet for presentation of device ->Commit açıklaması

Görsel olarak anlamak için aşağıdaki videoyu başlatarak, açılan saniyeden sonrasını inceleyebilirsiniz.

Medyaları görmek için kayıt olmalısınız

Yüklemek İstediğiniz Git Kaynağını Tanıtmak
git remote add origin

Yukarıda belirttiğim komutu kullanacaksınız. "remote add" kaynak tanıtma kodudur anlayacağınız.

Örneğin: zl0 kaynağını tanıtmak için önce Github hesabımda bir "device_leeco_zl0" adında kaynak kod ismi oluşturdum.

Daha sonra dosyaları hazırladım (ki hazırdı). Ve ;

git remote add origin

komutunu verdim.

Görsel olarak anlamak için aşağıdaki videoyu başlatarak, açılan saniyeden sonrasını inceleyebilirsiniz.

Medyaları görmek için kayıt olmalısınız

Sürüm Değiştirme
Kod:
git checkout -b sürüm


kodunu kullanırız.

Örneğin: Ben LineageOS 13 sürümünden 14.1 sürümüne güncelliyorsam kaynağı ya da ilk oluşturduğumda LineageOS 13 olduğunu belirtmek için açarım bu sürümü.

Bunun için :git checkout -b cm-13.0 komutunu kullanırım.

Değişiklikleri Yükleme
Kod:
git push -u origin sürüm


Kod kalıbını kullanırız. Sürüm yerine bir yukarıda anlattığım sürümü yazarız.

Tabi bundan önce init - add - commit ve checkout kodlarını uygulamalı ve tabanını hazırlamalısınız.

Yani ben zl0 cihaz girdilerini yüklemek için :

git push -u cm-13.0

komutunu kullandım.

Dolayısıyla cm-13.0 sürümüne yükleme yaptım. Eğer 14.1 varsa ve siz ona yükleme yapmak istiyorsanız cm-14.1 yazacaksınız.

Görsel olarak anlamak için aşağıdaki videoyu başlatarak, açılan saniyeden sonrasını inceleyebilirsiniz.

Medyaları görmek için kayıt olmalısınız

Senkonizazyon & Güncelleme
1-) git remote add upstream "upstream-linki"

upstream kısmı eğer birden fazla eklemek istiyorsanız değişebilir.

Örneğin: zl1 cihazına 2 farklı cihazdan güncelleme atmak için

git remote add oneplus3

git remote add marlin

2-) git fetch upstream

Birden çok eklemişseniz örneğin:

Kod:
git fetch oneplus3


ya da

Kod:
git fetch marlin


Buradaki amaç her eklenen repoya bir isim vermektir.
marlin'i eklemek istiyorsanız marlin linkine illa upstream değil marlin isminide verebilirsiniz. Bu sayede istediğiniz kadar repoyu ekleme imkanına sahip oluyorsunuz.

3-) git merge "commit-numarası" ya da "sürüm"

4-) git cherry-pick "commit-numarası"

Bu dört kalıp sizin kaynağınızı güncellemeye yarar.

Örneğin:

Ben zl1 cihazına oneplus3'ten bir paket / güncelleme / değişiklik atmak istiyorsam.

"git cherry-pick" ya da "git merge"komutları işimi görecektir.

Bunu yaparken sırasıyla

git remote add oneplus3

git fetch oneplus3

git cherry-pick 05223064f44d9b6f4840e5f59deadada9c25ca6c

komutlarını kullandım.

05223064f44d9b6f4840e5f59deadada9c25ca6c -> Bu commit aşağıdaki treedeki committir.

Ancak tek bir commit ile uğraşmayıp direk bütün commit'leri almak istiyorsanız

git merge işinizi görecektir. Bu sayede bütün commitleri aynı anda treenize eklemiş olursunuz.

Etiket Sistemi
Örneğin: Bir commit attınız. Ve projenizin kafanızdaki birinci kısmını tamamladınız. Bu son commite hadi 1.0.0 diyelim ve bir nevi save/load işlemi yapalım.

Yapmanız gereken şey :

git tag 1.0.0 "commit-numarası"

kalıbını kullanmaktır.

1.0.0 yerine 0.2.1 ya da değişik sürümlerde kullanabilirsiniz afaki olarak örnekledim :)

Kayıt Bilgisi Alma
Kod:
git log

komutu işinizi görecek.

En son hangi commitler ne zaman kim tarafından atılmış başlıkları ve kimlikleriyle görülür.

Yapmanız gereken şey kaynağınızın ana dizininde komutu vermek.

Daha sonra terminal penceresinde çıkacaktır.

Görsel olarak anlamak için aşağıdaki videoyu başlatarak, açılan saniyeden sonrasını inceleyebilirsiniz.

Medyaları görmek için kayıt olmalısınız

Commit İmzalama
"git commit" kısmından sonra "-s" eklenirse commit sizin tarafınızdan imzalanmış olur.

Örneğin:
git commit -s .

Komutu ile bir commit atarsam aşağıdaki gibi görünecektir:

Kod:
Extend build script options

Set devices codename when running build script instead of asking in the middle of process.
Update readme accordingly to this.

Signed-off-by: Mbtt <harddeath13@gmail.com>

İmza sistemi bunu ekleyerek sizin commitiniz olduğunu sizin tarafınızdan özgün şekilde atıldığını sağlamaya yarar.
"Signed-off-by: Mbtt <harddeath13@gmail.com>"

Github Projelerine Katkıda Bulunma
Github projelerinde başka projelere katkı yapmayı anlatan kısımdır.

Basitçe 5 adımdan oluşur. "$" ile başlayan satırlar terminale girilmesi gereken kodlardır.

1-) Projeyi kendi hesabınıza kopyalayın.

İstediğiniz projenin sayfasını açıp üst sağda bulunan fork butonuna tıklayın bu projeyi sizin github hesabınıza aktaracaktır.

Örneğin ana kaynak " " adresinde ise

Siz aktardıktan sonra sizin hesabınızda;

" "

yani bu adreste olacaktır.


2-) Projeyi yerel diskinize indirin.

Git programını kullanmayı bildiğinizi varsayarak projeyi diskinize git clone yöntemiyle indirin.

Örneğin: "$ git clone -b test-1 box/source"şeklinde bir komut kullanmalısınız.

Bu kısımları daha önce anlattığım gibi gerçekleştirin.

Mutlaka dosya ekleme commit atma kısımlarını okuyun.

3-) Projede istediğiniz düzenlemeleri yapın.

Değiştirmek istediğiniz yerleri değiştirin. Yapmak istediğiniz değişiklikleri yapın.

Daha sonrasında hepsinin bittiğine emin olun ve kaydedin.


4-) Projede yaptığınız değişiklikleri yüklemek için katkıda bulunmak istediğiniz kaynağı tanıtın.

Yani burada bizim değişikliği göndermek istediğimiz kaynağı tanıtarak buraya değişikliği göndermenin yolunu açacağız.

Bunun için : "git remote add upstream" kodu kullanılır. Ki bu sizin kaynağınızdan yapılan değişiklikleri algılayıp yüklemek istediğiniz kaynağa iletmeye yardımcı olur.

Örneğin ben sürücü düzeltmesini yaptıktan sonra şu komutu vermeliyim :

$ git remote add upstream

Daha fazla bilgi için güncelleme & senkronize etme kısmını okuyun.

5-) Değişiklikleri yükleyin.

Aşağıdaki komutlar değişiklikleri yüklemenizi sağlar.

Kod:
git pull upstream xxxx

Kod:
git push -u origin xxxxx

xxxxx-> Olarak bahsettiğim yer sürümdür (branch) cm-14.1 ya da mr1-nougat gibi

Örneğin:

Kod:
git pull upstream cm-14.1

Kod:
git push -u origin cm-14.1

Ve github hesabınızdaki kaynağa gidin. Üstte "Compare & pull request" şeklinde bir buton belirecektir.

Tıklayın ve daha sonra gelen arayüzde aşağı tarafa bakın burası değişikleri onaylayıp katkıda bulunmak istediğimiz kaynağa gönderecek olan butondur.

Bundan önce üst bara bir değişiklik mesajı yazmalısınız ki "Driver comp. && Mount block fix" yazmıştım ben. Bu değişikliklere uygun commit mesajınızı geçtikten sonra aşağıdaki büyük panele ise açıklama içeren bir metin yazabilirsiniz.

Ancak çokta zorlamayın ingiliççeyi kısa ve öz olması iyidir.

Aşağıda bahsettiğim create pull request butonuna hepsinden sonra tıklayın ve değişikliği katkıda bulunmak istediğiniz projeye gönderin.

Daha sonra bu isteği kontrol edip geliştiricileri onay ya da red vereceklerdir.

Github Manifest Kullanımı
Bu kısım sadece Linux kullanıcıları içindir, Windows'ta işe yaramaz.

1-) Repo Aracı Kurulumu

Repo aracı manifest dosyasını okuyup içeriğine göre belirtilen repoları çekebilen bir araçtır.

Kurmak için kök klasöründe bir terminal açıp aşağıdaki komutları verin.

Kod:
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo


2-) Repo Aracı Kullanımı

Aşağıdaki komut manifest adresini belirtir.

Kod:
repo init -u repo_adresi -b repo_sürümü


Örneğin:

Kod:
repo init -u https://github.com/LineageOS/android.git -b lineage-15.1


Aşağıdaki komut bu manifestin içerdiği repoları indirmeye başlar.

Kod:
repo sync


3-) Manifest Ve İçerik Düzenlemesi

Bir manifest dosyası .xml uzantısında olup aşağıdaki gibi görünür.

XML:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <remote  name="remote_name"
           fetch="https://github.com/fetch_address"
           revision="branch" />

  <!--Repositories-->
  <project name="Username/repository_name" path="path/to/repository" remote="remote_name" revision="branch" />
  <project name="Username/repository_name" path="path/to/repository" remote="remote_name" revision="branch" />
  <project name="Username/repository_name" path="path/to/repository" remote="remote_name" revision="branch" />
</manifest>


NOT: Birden fazla remote ekleyebilirsiniz.

Bunun yolu aşağıdaki gibi ilk kısmı bir daha ekleyip burayıda kendinize göre düzenleyin.

XML:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <remote  name="remote_name"
           fetch="https://github.com/fetch_address"
           revision="branch" />

  <remote  name="remote_name2"
           fetch="https://github.com/fetch_address2"
           revision="branch2" />

Bileşenleri:

- name: Repo ismi. Buranın Karşısına reponun ismini Sahip_adı/repo_adı olarak yazın.
- path: Reponun indirileceği dizin. Buranın karşısına reponun indirileceği dizini reponun/ineceği/dizin olarak yazın.
- remote: Eğer birden fazla remote girmişseniz hangisi olduğunu buraya yazın. Buraya yukarıda belirttiğimiz remote kaynaklarının isimlerini yazın. Örneğin a kaynağından bir dosya çekiyorsanız o dosyanın remote bölümüne o kaynağın ismini yazın.
- revision: Repo sürümü. İndirmek istediğiniz reponun branchıdır. Burada cm-14.1 ya da lineage-15.1 sürümler yazacaksınız.

Örneğin:

XML:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <remote  name="Mbtt"
           fetch="https://github.com/Mbtt107"/>

  <remote  name="muppets"
           fetch="https://github.com/TheMuppets"/>

  <!--Repositories-->
  <project name="Mbtt107/android_device_sega_tetris" path="device/sega/tetris" remote="Mbtt" revision="cm-14.1-custom" />
  <project name="Mbtt107/android_kernel_sega_tetris" path="kernel/sega/tetris" remote="Mbtt" revision="cm-14.1-custom" />
  <project name="TheMuppets/proprietary_vendor_tetris" path="vendor/tetris" remote="muppets" revision="cm-14.1" />
</manifest>

gibi.

Manifesti hazırladıktan sonra github kaynağına yükleyip, ardından 1. ve 2. adımdaki işlemleri uygulayın.
 
Son düzenleme:

mbtt

Deneyimli Üye
Deneyimli Üye
MIUI Sever
Adım
Lütfi
Cihazım
Le Pro3
Yaş
26
Konum
ankara
Katılım
22 Mayıs 2016
Konular
68
Mesajlar
102
Tepkime puanı
214
Puanları
43
GÜNCELLEME -04.05.2019-

Git Sistemi Kurulumu & Git Sistemine Kayıt Olma anlatımları eklendi.
Açıklamalar genişletildi.
Video anlatımları eklendi.
Görsel düzenlemeler yapıldı, renk ile belirteçler yapıldı.
Manifest Kullanımı anlatımı eklendi.
 
Üst Alt