SlideShare a Scribd company logo
1 of 24
Download to read offline
DOĞUKAN PADEL 1
ABAPGIT EĞİTİM DOKÜMANI
1. GİT NEDİR ?
Git bir versiyon kontrol sistemidir. Versiyon kontrol sistemi (Version Control System) bir proje
üzerinde yaptığımız değişiklikleri adım adım kaydeden ve isterseniz bunu internet üzerinde
depoda (repository) saklamamızı ve yönetmemizi sağlayan bir sistemdir. Ayrıca Git bir
dağınık (distributed) versiyon kontrol sistemi olduğu için her bir istemci (client) sadece
dosyaların en son anlık görüntüsünü kontrol etmekle kalmaz, aynı zamanda tam geçmişi de
dahil olmak üzere depoyu tamamen kopyalar. Her clone gerçekten tüm verilerin tam bir
yedeğidir. Böylece, herhangi bir sunucu ölürse ve bu sistemler bu sunucu aracılığıyla işbirliği
yapıyorsa, istemci depolarından herhangi biri geri yüklemek için sunucuya kopyalanabilir. Bu
nedenle dağınık bir versiyon kontrol sistemi olan Git’i kullanmak projemiz için oldukça
güvenlidir.
Ayrıca Git, bir projede çalışırken yaptığınız değişikleri görebilmenizi, eski haline
erişebilmenizi sağlar. Bu şekilde projenin her adımına erişebilir ve geliştirme süreçlerini
sağlıklı bir şekilde izleyebiliriz. Ayrıca bir projede birden fazla kişi çalışması durumunda da
aynı dosya üzerinde yapılan değişikliklerin sorun çıkmadan kontrol edilebilmesine, projelerin
güncel versiyonlarına ulaşabilmeye yardımcı olur. Bu tür avantajlar sağlaması nedeniyle
birçok yönden fayda sağlar ve hız artırır.
Git hakkında daha ayrıntılı bilgi edinmek isterseniz bu bağlantıdan faydalanabilirsiniz.
DOĞUKAN PADEL 2
2. ABAPGIT NEDİR ?
AbapGit, ABAP için ABAP ile yazılmış bir git istemcisidir. AbapGit, Lars
Hvam tarafından MIT Lisansı altında başlatılan bir Açık kaynaklı projedir. Abapgit
kullanarak SAP sisteminde geliştirilmiş bir geliştirme paketini git uzak sunucularında
depolayabilir, versiyon kontrollerini yapabilir ve istediğimiz zaman istediğimiz
versiyonu indirerek geliştirmeye kaldığımız yerden devam edebiliriz. Çalışma mantığı
olarak oluşturduğumuz veri sözlüğü nesneleri, programlar, CDS viewlar birer XML’e
dönüştürülerek git uzak sunucunda saklanır. Pull işlemi yapıldığında bu XML abapgit
tarafından çözülür ve SAP sisteminde otomatik olarak – tablo ise tablo olarak ,
structure ise structure olarak vb. – SAP nesneleri oluşturulur.
*Yukarıdaki görsel Dr. Kerem Köseoğlu ‘nun Abapgit i anlattığı videodan alıntıdır.
DOĞUKAN PADEL 3
3. ABAPGIT AVANTAJLARI
 Request transporting işlemi yerine kullanılabilir. Daha hızlı ve kolay bir yöntem
olması nedeniyle request transporting işlemine alternatif sağlar.
 Ürün güncellemelerinin dağıtımını kolaylaştırır. Farklı müşterilere satılmış bir
ürünümüz olduğunu kabul edelim. Ürün güncellemesinde her müşteriye
transport request göndermek yerine sadece bir github adresi ile güncellemeleri
kolayca dağıtabilirsiniz.
 Bir kod kütüphanesi sağlar.
 Proje üzerinde yapılan değişikliklerin takibini kolaylaştırır. Yapılan değişikliklerin
kim tarafından, hangi zamanda yapıldığını kontrol etmeyi kolaylaştırır.
 Sistem bağımsız geliştirmeye olanak sağlar.
 Farklı SAP sürümlerinde test etmeye olanak sağlar 7.70 ‘de yazılan bir kodun
7.50’de çalışıp çalışmadığını kontrol etmek gibi.
 Kod incelemeyi kolaylaştırır.
4. ABAPGIT DEZAVANTAJLARI
 ABAP nesnelerinin tümü abapGit tarafından desteklenmez. Bakınız.
 Repomuz çok büyük olursa abapGit’i her açtığımızda her şeyin seri hale
gelmesi ve değişiklikler için github ile karşılaştırılması gerektiğinden uzun
zaman alabilir.
 Kod incelemelerinde değişiklikleri tam olarak yalnızca github’a bakarak anlamak
pek mümkün değildir. Github ile eclipse yada SAP gui arasında sürekli geçiş
yapmak zaman kaybettirebilir.
 Branch işlemi çok zor neredeyse olanaksızdır. Bakınız.
DOĞUKAN PADEL 4
5. KURULUM
UYARI : AbapGit, SAP BASIS sürüm 702 veya üzerini gerektirir.
ZABAPGIT_STANDALONE isminde bir program oluşturun.
Buraya tıklayarak ABAP kodunu bilgisayarınıza kaydedin.
DOĞUKAN PADEL 5
Kaynak kodu değiştirme modunda, Utilities -> More Utilities -> Upload/Download ->
Upload'ı kullanarak kodu bir önceki adımda kaydettiğimiz dosyadan yükleyin.
Programı aktifleştirin.
DOĞUKAN PADEL 6
Programı yürüttüğünüzde abapGit SAP sisteminizde çalışıyor olacak.
DOĞUKAN PADEL 7
6. GÜNCELLEME
AbapGit 1.104.0 olan sürümü en güncel hale getirelim. Bunun için
ZABAPGIT_STANDALONE programını değiştir modunda açıyoruz. Kodları en güncel
kodlarla değiştiriyoruz. Kodları değiştirmek için kurulumdaki yöntemi kullanabilirsiniz
.Kodlara ulaşmak için burayı tıklayın.
Aktifleştirip çalıştırdığımızda abapGit en güncel sürümüne kavuşmuş oluyor.
DOĞUKAN PADEL 8
7. SSL KURULUMU
SAP sisteminin github ile iletişim kurması için bir ssl bağlantısı kurmamız gerekiyor.
SAP varsayılan olarak eski bir ssl sürümünü desteklediği için SAP sisteminde birkaç
profil parametresi ayarlamamız gerekiyor.
RZ10 işlem koduna gidiyoruz. Yaptığımız değişiklikler sistemi yeniden başlattığımızda
geçerli olacak. Bu yüzden işlemleri gerçekleştirdikten sonra sistemi yeniden
başlatmamız gerek. Profil alanında default seçtikten sonra extended maintenance
seçeneğinin seçili olduğundan emin olup. Change butonuna basıyoruz.
Açılan ekranda parameter kısmına tıklıyoruz.
DOĞUKAN PADEL 9
Eklememiz veya kontrol etmemiz gerek üç parametre var.
 ssl/client_ciphersuites = 150:PFS:HIGH::EC_P256:EC_HIGH
 ssl/ciphersuites = 135:PFS:HIGH::EC_P256:EC_HIGH
 icm/HTTPS/client_sni_enabled = TRUE
Parametreyi aşağıdaki gibi gerekli alanlara giriyoruz. Copy diyoruz. Geri çıkıyoruz.
Değişiklikleri kaydetmek istiyor musunuz pop-up’ına evet diyoruz. Bu işlemi diğer
parametreler için de tekrarlıyoruz.
Aşağıdaki gibi bir görüntü olduğundan emin oluyoruz. Copy butonuna tıklayıp geri
çıkıyoruz.
DOĞUKAN PADEL 10
Profil  save ve ardından profile  activate butonlarına tıklayarak profili
aktifleştiriyoruz.
Sıradaki adımda github sertifikalarını sistemimize tanımlayacağız. Github sayfasına
gidiyoruz. Tarayıcının site bilgi ekranında bağlantı ayarlarını göster ve ardından
sertifikayı göster alanını seçin. Sertifikalar açılacaktır.
DOĞUKAN PADEL 11
Ayrıntılar  Dosyaya kopyala  Sonraki  Der ile kodlanmış ikili seçeneğini seçip
sonraki  Dosya adını seçip sonraki  Son adımlarını izleyerek sertifikamızı dışa
aktarıyoruz. (Dışa aktardığımız sertifika github.com sertifikası bunu diğer sertifikalar
için de tekrarlıyoruz işlemler tamamlandığında elimizde 3 farklı sertifika olması
gerekiyor.)
Aşağıdaki resimde görüldüğü üzere bu sertifikaları da aynı adımları izleyerek dışa
aktarıyoruz. Elimizde 3 adet sertifika olması gerekiyor.
DOĞUKAN PADEL 12
SAP sisteminde STRUST işlem kodunu açıyoruz. Change butonuna tıklıyoruz.
SSL client SSL Cliennt (Anonymous) seçeğine tıklıyoruz. Burada sertifikalarımızı
sisteme aktaracağız. Altta bir içe aktar düğmesi görüyoruz.
DOĞUKAN PADEL 13
Açılan ekranda indirdiğimiz sertifikalardan birini seçiyoruz. İzin ver diyoruz. Daha sonra
sertifika listesine ekle butonuna basıyoruz. Bu işlemi tüm sertifikalar için tekrarlıyoruz.
Şimdi SAP sistemi github ile iletişim kurmak için bilmesi gereken tüm sertifikaları biliyor.
SAP sistemini kapatıp tekrar açın.
DOĞUKAN PADEL 14
Github’ a SSL bağlantısını test etmek için zabapgit_test_ssl adında bir rapor oluşturun.
Buradaki kodu rapora yapıştırın. Aktifleştirip çalıştırın.
Bu şekilde sonuç almanız gerekir. Sonuç bu şekildeyse her şey düzgün çalışıyor
demektir.
DOĞUKAN PADEL 15
8. REPO OLUŞTURMA VE YÜKLEME
İçinde bir programın olduğu bir paketim var. Bu bir program yerine yüzlerce program,
sınıf, nesne de olabilirdi.
Github hesabıma gidiyorum. Bir repository oluşturuyorum.
DOĞUKAN PADEL 16
SE38 işlem kodu ile zabapgit_standalone programı çalıştırıyorum. Abapgit ekranı sizi
karşılayacak. Bu ekranda new online butonuna tıklıyorum.
Bu ekran beni karşılayacak. Oluşturduğum github reposunun adresini github repository
url kısmına veriyorum. SAP sistemindeki paketimin adını package alanına veriyorum.
Son olarak display name veriyorum ve create online repository butonuna basıyorum.
Ve online repom oluşmuş oluyor. Bu paketi github repomda yayınlamak için öncelikli
olarak stage butonuna tıklıyoruz.
DOĞUKAN PADEL 17
Yayınlamak istediğimiz dosyaları ister tek tek (add butonu yardımıyla) ister tümünü
(add all and commit yardımıyla) seçerek commit butonuna basıyoruz.
Zorunlu alanları doldurduktan sonra commit diyoruz.
Gelen pop-up da user alanına github kullanıcı adımızı yazıyoruz. Yeni gelen
güncelleme ile github şifrenizi yazarak commit işlemini gerçekleştiremiyorsunuz.
Bunun yerine tek kullanımlık bir token üretip bu token ile commit işlemini
gerçekleştiriyorsunuz.
DOĞUKAN PADEL 18
Token üretmek için github  settings  developer settings yolunu izlemeniz gerekir.
Personal Access tokens bölümünden generate new token seçeğini seçin. Ben token
oluştururken aşağıdaki checkboxlardan sadece repo olanı işaretliyorum. Diğerlerini
tercihe göre işaretleyebilirsiniz.
Daha sonra generate token butonuna tıklayarak tokenımızı oluşturmuş oluyoruz.
Token oluşmuş oldu. Jetonunuz tek kullanımlık oluyor her seferinde regenarate
etmeniz gerekir.
DOĞUKAN PADEL 19
Jetonu kopyalayıp pop-up’a yapıştırıyoruz. Yürüt diyoruz.
Commit işlemi gerçekleşmiş oluyor.
Github repomuza baktığımızda sonucu görebiliriz.
DOĞUKAN PADEL 20
9. GITHUB’DAN PROJENİN ÇEKİLMESİ
Başka bir sistemde bu reponun github’dan sisteme çekilmesi işlemi de oldukça basit.
SE38 işlem kodunda ZABAPGIT_STANDALONE uygulamasını çalıştırarak abapGit e
erişim sağlıyoruz.
New online butonuna tıklıyoruz. Github repomuzun adresini veriyoruz. Daha önceden
oluşturduğumuz veya şuan otomatik olarak oluşturulmasını istediğimiz paket ismini
veriyoruz ve create online repo butonuna tıklıyoruz.
DOĞUKAN PADEL 21
Github repomuzda olan XML ve ABAP dosyaları burada görünüyor olacak. PULL
komutu ile verileri hedef sistemimize çekiyoruz.
Girdiğim paket ismi mevcut olmadığı ve otomatik olarak oluşturulacağı için bana bir
pop-up gösteriyor. Oluşturulacak paketin hangi requestin altında olacağını belirlemek
için. Burada ister yeni bir request oluşturabilir isterseniz de var olan bir requesti
seçebilirsiniz.
İşlem başarılı bir şekilde gerçekleşmiş oluyor. Github reposu ve sistemdeki repo aynı
olduğu için pull butonu görünmez oluyor. Github repomuzda bir değişiklik
yaptığımızda pull butonu tekrar aktif olacaktır.
DOĞUKAN PADEL 22
SE80 üzerinden paketimizi kontrol ettiğimizde github reposundaki tablo ve programın
hedef sisteme başarılı bir şekilde aktarıldığını görüyoruz.
DOĞUKAN PADEL 23
10. ABAPGIT’ İ SİSTEMDEN KALDIRMA
SE38 veya SE80 kullanarak ZABAPGIT* ABAP raporlarını silin.
EZABAPGIT kuyruğa alma nesnesini SE11 aracılığıyla silin.
SE11 aracılığıyla ZABAPGIT şeffaf tablosunu silin.
SMW0 işlemindeki ZABAPGIT_CSS_COMMON + ZABAPGIT_JS_COMMON mime
nesnelerini silin.
SE24 veya SE80 kullanarak ZIF_APACK_MANIFEST arayüzünü silin (isteğe bağlı,
klonlanmış depolar bu arayüzü kullanmaya devam edebilir).
DOĞUKAN PADEL 24
11. KAYNAKLAR
 https://github.com/abapGit/abapGit
 https://docs.abapgit.org/guide-install.html
 https://www.youtube.com/watch?v=qbS8l5nbUVU&ab_channel=Dr.KeremKos
eoglu
 https://saplearners.com/how-to-integrate-abapgit-with-github/
 https://blogs.sap.com/2017/06/21/abapgit-so-easy/
 https://saplearners.com/how-to-install-abapgit-client-in-sap-abap-system/
 https://sapbazar.com/articles/item/2331-how-we-do-abap-code-review-using-
abapgit
 https://blogs.sap.com/2018/03/23/abap-code-reviews-with-abapgit/
 https://blog.titanwolf.in/a?ID=01400-b633cce2-c9ba-422a-b2a5-
bc6d24e28402
 https://www.simplilearn.com/tutorials/git-tutorial/what-is-git

More Related Content

What's hot

Oracle Cloud Infrastructure:2021年3月度サービス・アップデート
Oracle Cloud Infrastructure:2021年3月度サービス・アップデートOracle Cloud Infrastructure:2021年3月度サービス・アップデート
Oracle Cloud Infrastructure:2021年3月度サービス・アップデートオラクルエンジニア通信
 
Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...
Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...
Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...オラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年1月度サービス・アップデート
Oracle Cloud Infrastructure:2022年1月度サービス・アップデートOracle Cloud Infrastructure:2022年1月度サービス・アップデート
Oracle Cloud Infrastructure:2022年1月度サービス・アップデートオラクルエンジニア通信
 
Qlik TECH TALK 20210706 SAPデータ分析を加速するQlikのアクセレレーターパッケージご紹介
Qlik TECH TALK 20210706 SAPデータ分析を加速するQlikのアクセレレーターパッケージご紹介Qlik TECH TALK 20210706 SAPデータ分析を加速するQlikのアクセレレーターパッケージご紹介
Qlik TECH TALK 20210706 SAPデータ分析を加速するQlikのアクセレレーターパッケージご紹介QlikPresalesJapan
 
Oracle GoldenGateでの資料採取(トラブル時に採取すべき資料)
Oracle GoldenGateでの資料採取(トラブル時に採取すべき資料)Oracle GoldenGateでの資料採取(トラブル時に採取すべき資料)
Oracle GoldenGateでの資料採取(トラブル時に採取すべき資料)オラクルエンジニア通信
 
Oracle Cloud Infrastructure:2021年6月度サービス・アップデート
Oracle Cloud Infrastructure:2021年6月度サービス・アップデートOracle Cloud Infrastructure:2021年6月度サービス・アップデート
Oracle Cloud Infrastructure:2021年6月度サービス・アップデートオラクルエンジニア通信
 
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年9月22日)
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年9月22日)はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年9月22日)
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年9月22日)オラクルエンジニア通信
 
GoldenGateテクニカルセミナー4「テクニカルコンサルタントが語るOracle GoldenGate現場で使える極意」(2016/5/11)
GoldenGateテクニカルセミナー4「テクニカルコンサルタントが語るOracle GoldenGate現場で使える極意」(2016/5/11)GoldenGateテクニカルセミナー4「テクニカルコンサルタントが語るOracle GoldenGate現場で使える極意」(2016/5/11)
GoldenGateテクニカルセミナー4「テクニカルコンサルタントが語るOracle GoldenGate現場で使える極意」(2016/5/11)オラクルエンジニア通信
 
GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)
GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)
GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)オラクルエンジニア通信
 
サポート エンジニアが語る、トラブルを未然に防ぐための Azure インフラ設計
サポート エンジニアが語る、トラブルを未然に防ぐための Azure インフラ設計サポート エンジニアが語る、トラブルを未然に防ぐための Azure インフラ設計
サポート エンジニアが語る、トラブルを未然に防ぐための Azure インフラ設計ShuheiUda
 
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデートOracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデートオラクルエンジニア通信
 
Oracle GoldenGate Veridata 12cR2 セットアップガイド
Oracle GoldenGate Veridata 12cR2 セットアップガイドOracle GoldenGate Veridata 12cR2 セットアップガイド
Oracle GoldenGate Veridata 12cR2 セットアップガイドオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年4月度サービス・アップデート
Oracle Cloud Infrastructure:2022年4月度サービス・アップデートOracle Cloud Infrastructure:2022年4月度サービス・アップデート
Oracle Cloud Infrastructure:2022年4月度サービス・アップデートオラクルエンジニア通信
 
Oracle GoldenGate for Big Data 12.2 セットアップガイド
Oracle GoldenGate for Big Data 12.2 セットアップガイドOracle GoldenGate for Big Data 12.2 セットアップガイド
Oracle GoldenGate for Big Data 12.2 セットアップガイドオラクルエンジニア通信
 
Oracle jdk 20190827 - 今、あらためてOracle提供のJDKを語る
Oracle jdk 20190827 - 今、あらためてOracle提供のJDKを語るOracle jdk 20190827 - 今、あらためてOracle提供のJDKを語る
Oracle jdk 20190827 - 今、あらためてOracle提供のJDKを語るオラクルエンジニア通信
 
Oracle Data Integrator R12.2.1.1 Agentセットアップガイド
Oracle Data Integrator R12.2.1.1 AgentセットアップガイドOracle Data Integrator R12.2.1.1 Agentセットアップガイド
Oracle Data Integrator R12.2.1.1 Agentセットアップガイドオラクルエンジニア通信
 

What's hot (20)

Oracle Cloud Infrastructure:2021年3月度サービス・アップデート
Oracle Cloud Infrastructure:2021年3月度サービス・アップデートOracle Cloud Infrastructure:2021年3月度サービス・アップデート
Oracle Cloud Infrastructure:2021年3月度サービス・アップデート
 
Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...
Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...
Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...
 
Oracle Cloud Infrastructure:2022年1月度サービス・アップデート
Oracle Cloud Infrastructure:2022年1月度サービス・アップデートOracle Cloud Infrastructure:2022年1月度サービス・アップデート
Oracle Cloud Infrastructure:2022年1月度サービス・アップデート
 
Qlik TECH TALK 20210706 SAPデータ分析を加速するQlikのアクセレレーターパッケージご紹介
Qlik TECH TALK 20210706 SAPデータ分析を加速するQlikのアクセレレーターパッケージご紹介Qlik TECH TALK 20210706 SAPデータ分析を加速するQlikのアクセレレーターパッケージご紹介
Qlik TECH TALK 20210706 SAPデータ分析を加速するQlikのアクセレレーターパッケージご紹介
 
Oracle GoldenGateでの資料採取(トラブル時に採取すべき資料)
Oracle GoldenGateでの資料採取(トラブル時に採取すべき資料)Oracle GoldenGateでの資料採取(トラブル時に採取すべき資料)
Oracle GoldenGateでの資料採取(トラブル時に採取すべき資料)
 
Oracle Cloud Infrastructure:2021年6月度サービス・アップデート
Oracle Cloud Infrastructure:2021年6月度サービス・アップデートOracle Cloud Infrastructure:2021年6月度サービス・アップデート
Oracle Cloud Infrastructure:2021年6月度サービス・アップデート
 
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年9月22日)
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年9月22日)はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年9月22日)
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年9月22日)
 
Oracle Audit Vault and Database Vault のご紹介
Oracle Audit Vault and Database Vault のご紹介Oracle Audit Vault and Database Vault のご紹介
Oracle Audit Vault and Database Vault のご紹介
 
GoldenGateテクニカルセミナー4「テクニカルコンサルタントが語るOracle GoldenGate現場で使える極意」(2016/5/11)
GoldenGateテクニカルセミナー4「テクニカルコンサルタントが語るOracle GoldenGate現場で使える極意」(2016/5/11)GoldenGateテクニカルセミナー4「テクニカルコンサルタントが語るOracle GoldenGate現場で使える極意」(2016/5/11)
GoldenGateテクニカルセミナー4「テクニカルコンサルタントが語るOracle GoldenGate現場で使える極意」(2016/5/11)
 
GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)
GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)
GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)
 
サポート エンジニアが語る、トラブルを未然に防ぐための Azure インフラ設計
サポート エンジニアが語る、トラブルを未然に防ぐための Azure インフラ設計サポート エンジニアが語る、トラブルを未然に防ぐための Azure インフラ設計
サポート エンジニアが語る、トラブルを未然に防ぐための Azure インフラ設計
 
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデートOracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
 
Oracle GoldenGate Veridata 12cR2 セットアップガイド
Oracle GoldenGate Veridata 12cR2 セットアップガイドOracle GoldenGate Veridata 12cR2 セットアップガイド
Oracle GoldenGate Veridata 12cR2 セットアップガイド
 
Oracle GoldenGate アーキテクチャと基本機能
Oracle GoldenGate アーキテクチャと基本機能Oracle GoldenGate アーキテクチャと基本機能
Oracle GoldenGate アーキテクチャと基本機能
 
OCI GoldenGate Overview 2021年4月版
OCI GoldenGate Overview 2021年4月版OCI GoldenGate Overview 2021年4月版
OCI GoldenGate Overview 2021年4月版
 
Oracle Cloud Infrastructure:2022年4月度サービス・アップデート
Oracle Cloud Infrastructure:2022年4月度サービス・アップデートOracle Cloud Infrastructure:2022年4月度サービス・アップデート
Oracle Cloud Infrastructure:2022年4月度サービス・アップデート
 
Oracle GoldenGate入門
Oracle GoldenGate入門Oracle GoldenGate入門
Oracle GoldenGate入門
 
Oracle GoldenGate for Big Data 12.2 セットアップガイド
Oracle GoldenGate for Big Data 12.2 セットアップガイドOracle GoldenGate for Big Data 12.2 セットアップガイド
Oracle GoldenGate for Big Data 12.2 セットアップガイド
 
Oracle jdk 20190827 - 今、あらためてOracle提供のJDKを語る
Oracle jdk 20190827 - 今、あらためてOracle提供のJDKを語るOracle jdk 20190827 - 今、あらためてOracle提供のJDKを語る
Oracle jdk 20190827 - 今、あらためてOracle提供のJDKを語る
 
Oracle Data Integrator R12.2.1.1 Agentセットアップガイド
Oracle Data Integrator R12.2.1.1 AgentセットアップガイドOracle Data Integrator R12.2.1.1 Agentセットアップガイド
Oracle Data Integrator R12.2.1.1 Agentセットアップガイド
 

Similar to Abapgit kurulum kullanım

Git, Github, Versiyon Kontrolü 101
Git, Github, Versiyon Kontrolü 101Git, Github, Versiyon Kontrolü 101
Git, Github, Versiyon Kontrolü 101OnurSercanYlmaz
 
Developer Tools
Developer ToolsDeveloper Tools
Developer ToolsBurak Erol
 
Git Sürüm Takip Sistemi
Git Sürüm Takip SistemiGit Sürüm Takip Sistemi
Git Sürüm Takip Sistemiözge Barbaros
 
Git ile Sürüm Takibi
Git ile Sürüm TakibiGit ile Sürüm Takibi
Git ile Sürüm TakibiÖmer ÖZKAN
 
Release Management
Release ManagementRelease Management
Release ManagementOzgur Birol
 
Web Uygulamalarında Kaynak Kod Analizi - 1
Web Uygulamalarında Kaynak Kod Analizi - 1Web Uygulamalarında Kaynak Kod Analizi - 1
Web Uygulamalarında Kaynak Kod Analizi - 1Mehmet Ince
 
Açık Kaynak Kodlu Yazılım Geliştirme
Açık Kaynak Kodlu Yazılım GeliştirmeAçık Kaynak Kodlu Yazılım Geliştirme
Açık Kaynak Kodlu Yazılım GeliştirmeSerkan Kaba
 
cofaso Kullanım Kılavuzu
cofaso Kullanım Kılavuzucofaso Kullanım Kılavuzu
cofaso Kullanım KılavuzuVitorCordova
 
Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1Univerist
 
versiyon kontrol sistemleri , git , github
versiyon kontrol sistemleri , git , githubversiyon kontrol sistemleri , git , github
versiyon kontrol sistemleri , git , githubfurkan mataraci
 
Powershell Nedir, Nasıl Çalışır, Temel PowerShell ve Ofansif Powershell
Powershell Nedir, Nasıl Çalışır, Temel PowerShell ve Ofansif PowershellPowershell Nedir, Nasıl Çalışır, Temel PowerShell ve Ofansif Powershell
Powershell Nedir, Nasıl Çalışır, Temel PowerShell ve Ofansif PowershellRamin Karimkhani
 
Bitdefender gravityzone yapılandırma_tekvizyon
Bitdefender gravityzone yapılandırma_tekvizyonBitdefender gravityzone yapılandırma_tekvizyon
Bitdefender gravityzone yapılandırma_tekvizyonTekvizyonTeknolojiHi
 
Tekvizyon bitdefender-gravityzone bulut-panel-yapılandırma
Tekvizyon bitdefender-gravityzone bulut-panel-yapılandırmaTekvizyon bitdefender-gravityzone bulut-panel-yapılandırma
Tekvizyon bitdefender-gravityzone bulut-panel-yapılandırmaTekvizyon Pc Teknoloji Hizmetleri
 
Application Compatibility (Uygulama Uyumluluğu)
Application Compatibility (Uygulama Uyumluluğu)Application Compatibility (Uygulama Uyumluluğu)
Application Compatibility (Uygulama Uyumluluğu)windowsblogu
 

Similar to Abapgit kurulum kullanım (20)

Git, Github, Versiyon Kontrolü 101
Git, Github, Versiyon Kontrolü 101Git, Github, Versiyon Kontrolü 101
Git, Github, Versiyon Kontrolü 101
 
Developer Tools
Developer ToolsDeveloper Tools
Developer Tools
 
Tizen
TizenTizen
Tizen
 
Git 101
Git 101Git 101
Git 101
 
Git Sürüm Takip Sistemi
Git Sürüm Takip SistemiGit Sürüm Takip Sistemi
Git Sürüm Takip Sistemi
 
Git Sunumu
Git SunumuGit Sunumu
Git Sunumu
 
Git ile Sürüm Takibi
Git ile Sürüm TakibiGit ile Sürüm Takibi
Git ile Sürüm Takibi
 
Git & Git Workflows
Git & Git WorkflowsGit & Git Workflows
Git & Git Workflows
 
Git ve GitHub
Git ve GitHubGit ve GitHub
Git ve GitHub
 
Jenkins Notlarım
Jenkins NotlarımJenkins Notlarım
Jenkins Notlarım
 
Release Management
Release ManagementRelease Management
Release Management
 
Web Uygulamalarında Kaynak Kod Analizi - 1
Web Uygulamalarında Kaynak Kod Analizi - 1Web Uygulamalarında Kaynak Kod Analizi - 1
Web Uygulamalarında Kaynak Kod Analizi - 1
 
Açık Kaynak Kodlu Yazılım Geliştirme
Açık Kaynak Kodlu Yazılım GeliştirmeAçık Kaynak Kodlu Yazılım Geliştirme
Açık Kaynak Kodlu Yazılım Geliştirme
 
cofaso Kullanım Kılavuzu
cofaso Kullanım Kılavuzucofaso Kullanım Kılavuzu
cofaso Kullanım Kılavuzu
 
Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1
 
versiyon kontrol sistemleri , git , github
versiyon kontrol sistemleri , git , githubversiyon kontrol sistemleri , git , github
versiyon kontrol sistemleri , git , github
 
Powershell Nedir, Nasıl Çalışır, Temel PowerShell ve Ofansif Powershell
Powershell Nedir, Nasıl Çalışır, Temel PowerShell ve Ofansif PowershellPowershell Nedir, Nasıl Çalışır, Temel PowerShell ve Ofansif Powershell
Powershell Nedir, Nasıl Çalışır, Temel PowerShell ve Ofansif Powershell
 
Bitdefender gravityzone yapılandırma_tekvizyon
Bitdefender gravityzone yapılandırma_tekvizyonBitdefender gravityzone yapılandırma_tekvizyon
Bitdefender gravityzone yapılandırma_tekvizyon
 
Tekvizyon bitdefender-gravityzone bulut-panel-yapılandırma
Tekvizyon bitdefender-gravityzone bulut-panel-yapılandırmaTekvizyon bitdefender-gravityzone bulut-panel-yapılandırma
Tekvizyon bitdefender-gravityzone bulut-panel-yapılandırma
 
Application Compatibility (Uygulama Uyumluluğu)
Application Compatibility (Uygulama Uyumluluğu)Application Compatibility (Uygulama Uyumluluğu)
Application Compatibility (Uygulama Uyumluluğu)
 

Abapgit kurulum kullanım

  • 1. DOĞUKAN PADEL 1 ABAPGIT EĞİTİM DOKÜMANI 1. GİT NEDİR ? Git bir versiyon kontrol sistemidir. Versiyon kontrol sistemi (Version Control System) bir proje üzerinde yaptığımız değişiklikleri adım adım kaydeden ve isterseniz bunu internet üzerinde depoda (repository) saklamamızı ve yönetmemizi sağlayan bir sistemdir. Ayrıca Git bir dağınık (distributed) versiyon kontrol sistemi olduğu için her bir istemci (client) sadece dosyaların en son anlık görüntüsünü kontrol etmekle kalmaz, aynı zamanda tam geçmişi de dahil olmak üzere depoyu tamamen kopyalar. Her clone gerçekten tüm verilerin tam bir yedeğidir. Böylece, herhangi bir sunucu ölürse ve bu sistemler bu sunucu aracılığıyla işbirliği yapıyorsa, istemci depolarından herhangi biri geri yüklemek için sunucuya kopyalanabilir. Bu nedenle dağınık bir versiyon kontrol sistemi olan Git’i kullanmak projemiz için oldukça güvenlidir. Ayrıca Git, bir projede çalışırken yaptığınız değişikleri görebilmenizi, eski haline erişebilmenizi sağlar. Bu şekilde projenin her adımına erişebilir ve geliştirme süreçlerini sağlıklı bir şekilde izleyebiliriz. Ayrıca bir projede birden fazla kişi çalışması durumunda da aynı dosya üzerinde yapılan değişikliklerin sorun çıkmadan kontrol edilebilmesine, projelerin güncel versiyonlarına ulaşabilmeye yardımcı olur. Bu tür avantajlar sağlaması nedeniyle birçok yönden fayda sağlar ve hız artırır. Git hakkında daha ayrıntılı bilgi edinmek isterseniz bu bağlantıdan faydalanabilirsiniz.
  • 2. DOĞUKAN PADEL 2 2. ABAPGIT NEDİR ? AbapGit, ABAP için ABAP ile yazılmış bir git istemcisidir. AbapGit, Lars Hvam tarafından MIT Lisansı altında başlatılan bir Açık kaynaklı projedir. Abapgit kullanarak SAP sisteminde geliştirilmiş bir geliştirme paketini git uzak sunucularında depolayabilir, versiyon kontrollerini yapabilir ve istediğimiz zaman istediğimiz versiyonu indirerek geliştirmeye kaldığımız yerden devam edebiliriz. Çalışma mantığı olarak oluşturduğumuz veri sözlüğü nesneleri, programlar, CDS viewlar birer XML’e dönüştürülerek git uzak sunucunda saklanır. Pull işlemi yapıldığında bu XML abapgit tarafından çözülür ve SAP sisteminde otomatik olarak – tablo ise tablo olarak , structure ise structure olarak vb. – SAP nesneleri oluşturulur. *Yukarıdaki görsel Dr. Kerem Köseoğlu ‘nun Abapgit i anlattığı videodan alıntıdır.
  • 3. DOĞUKAN PADEL 3 3. ABAPGIT AVANTAJLARI  Request transporting işlemi yerine kullanılabilir. Daha hızlı ve kolay bir yöntem olması nedeniyle request transporting işlemine alternatif sağlar.  Ürün güncellemelerinin dağıtımını kolaylaştırır. Farklı müşterilere satılmış bir ürünümüz olduğunu kabul edelim. Ürün güncellemesinde her müşteriye transport request göndermek yerine sadece bir github adresi ile güncellemeleri kolayca dağıtabilirsiniz.  Bir kod kütüphanesi sağlar.  Proje üzerinde yapılan değişikliklerin takibini kolaylaştırır. Yapılan değişikliklerin kim tarafından, hangi zamanda yapıldığını kontrol etmeyi kolaylaştırır.  Sistem bağımsız geliştirmeye olanak sağlar.  Farklı SAP sürümlerinde test etmeye olanak sağlar 7.70 ‘de yazılan bir kodun 7.50’de çalışıp çalışmadığını kontrol etmek gibi.  Kod incelemeyi kolaylaştırır. 4. ABAPGIT DEZAVANTAJLARI  ABAP nesnelerinin tümü abapGit tarafından desteklenmez. Bakınız.  Repomuz çok büyük olursa abapGit’i her açtığımızda her şeyin seri hale gelmesi ve değişiklikler için github ile karşılaştırılması gerektiğinden uzun zaman alabilir.  Kod incelemelerinde değişiklikleri tam olarak yalnızca github’a bakarak anlamak pek mümkün değildir. Github ile eclipse yada SAP gui arasında sürekli geçiş yapmak zaman kaybettirebilir.  Branch işlemi çok zor neredeyse olanaksızdır. Bakınız.
  • 4. DOĞUKAN PADEL 4 5. KURULUM UYARI : AbapGit, SAP BASIS sürüm 702 veya üzerini gerektirir. ZABAPGIT_STANDALONE isminde bir program oluşturun. Buraya tıklayarak ABAP kodunu bilgisayarınıza kaydedin.
  • 5. DOĞUKAN PADEL 5 Kaynak kodu değiştirme modunda, Utilities -> More Utilities -> Upload/Download -> Upload'ı kullanarak kodu bir önceki adımda kaydettiğimiz dosyadan yükleyin. Programı aktifleştirin.
  • 6. DOĞUKAN PADEL 6 Programı yürüttüğünüzde abapGit SAP sisteminizde çalışıyor olacak.
  • 7. DOĞUKAN PADEL 7 6. GÜNCELLEME AbapGit 1.104.0 olan sürümü en güncel hale getirelim. Bunun için ZABAPGIT_STANDALONE programını değiştir modunda açıyoruz. Kodları en güncel kodlarla değiştiriyoruz. Kodları değiştirmek için kurulumdaki yöntemi kullanabilirsiniz .Kodlara ulaşmak için burayı tıklayın. Aktifleştirip çalıştırdığımızda abapGit en güncel sürümüne kavuşmuş oluyor.
  • 8. DOĞUKAN PADEL 8 7. SSL KURULUMU SAP sisteminin github ile iletişim kurması için bir ssl bağlantısı kurmamız gerekiyor. SAP varsayılan olarak eski bir ssl sürümünü desteklediği için SAP sisteminde birkaç profil parametresi ayarlamamız gerekiyor. RZ10 işlem koduna gidiyoruz. Yaptığımız değişiklikler sistemi yeniden başlattığımızda geçerli olacak. Bu yüzden işlemleri gerçekleştirdikten sonra sistemi yeniden başlatmamız gerek. Profil alanında default seçtikten sonra extended maintenance seçeneğinin seçili olduğundan emin olup. Change butonuna basıyoruz. Açılan ekranda parameter kısmına tıklıyoruz.
  • 9. DOĞUKAN PADEL 9 Eklememiz veya kontrol etmemiz gerek üç parametre var.  ssl/client_ciphersuites = 150:PFS:HIGH::EC_P256:EC_HIGH  ssl/ciphersuites = 135:PFS:HIGH::EC_P256:EC_HIGH  icm/HTTPS/client_sni_enabled = TRUE Parametreyi aşağıdaki gibi gerekli alanlara giriyoruz. Copy diyoruz. Geri çıkıyoruz. Değişiklikleri kaydetmek istiyor musunuz pop-up’ına evet diyoruz. Bu işlemi diğer parametreler için de tekrarlıyoruz. Aşağıdaki gibi bir görüntü olduğundan emin oluyoruz. Copy butonuna tıklayıp geri çıkıyoruz.
  • 10. DOĞUKAN PADEL 10 Profil  save ve ardından profile  activate butonlarına tıklayarak profili aktifleştiriyoruz. Sıradaki adımda github sertifikalarını sistemimize tanımlayacağız. Github sayfasına gidiyoruz. Tarayıcının site bilgi ekranında bağlantı ayarlarını göster ve ardından sertifikayı göster alanını seçin. Sertifikalar açılacaktır.
  • 11. DOĞUKAN PADEL 11 Ayrıntılar  Dosyaya kopyala  Sonraki  Der ile kodlanmış ikili seçeneğini seçip sonraki  Dosya adını seçip sonraki  Son adımlarını izleyerek sertifikamızı dışa aktarıyoruz. (Dışa aktardığımız sertifika github.com sertifikası bunu diğer sertifikalar için de tekrarlıyoruz işlemler tamamlandığında elimizde 3 farklı sertifika olması gerekiyor.) Aşağıdaki resimde görüldüğü üzere bu sertifikaları da aynı adımları izleyerek dışa aktarıyoruz. Elimizde 3 adet sertifika olması gerekiyor.
  • 12. DOĞUKAN PADEL 12 SAP sisteminde STRUST işlem kodunu açıyoruz. Change butonuna tıklıyoruz. SSL client SSL Cliennt (Anonymous) seçeğine tıklıyoruz. Burada sertifikalarımızı sisteme aktaracağız. Altta bir içe aktar düğmesi görüyoruz.
  • 13. DOĞUKAN PADEL 13 Açılan ekranda indirdiğimiz sertifikalardan birini seçiyoruz. İzin ver diyoruz. Daha sonra sertifika listesine ekle butonuna basıyoruz. Bu işlemi tüm sertifikalar için tekrarlıyoruz. Şimdi SAP sistemi github ile iletişim kurmak için bilmesi gereken tüm sertifikaları biliyor. SAP sistemini kapatıp tekrar açın.
  • 14. DOĞUKAN PADEL 14 Github’ a SSL bağlantısını test etmek için zabapgit_test_ssl adında bir rapor oluşturun. Buradaki kodu rapora yapıştırın. Aktifleştirip çalıştırın. Bu şekilde sonuç almanız gerekir. Sonuç bu şekildeyse her şey düzgün çalışıyor demektir.
  • 15. DOĞUKAN PADEL 15 8. REPO OLUŞTURMA VE YÜKLEME İçinde bir programın olduğu bir paketim var. Bu bir program yerine yüzlerce program, sınıf, nesne de olabilirdi. Github hesabıma gidiyorum. Bir repository oluşturuyorum.
  • 16. DOĞUKAN PADEL 16 SE38 işlem kodu ile zabapgit_standalone programı çalıştırıyorum. Abapgit ekranı sizi karşılayacak. Bu ekranda new online butonuna tıklıyorum. Bu ekran beni karşılayacak. Oluşturduğum github reposunun adresini github repository url kısmına veriyorum. SAP sistemindeki paketimin adını package alanına veriyorum. Son olarak display name veriyorum ve create online repository butonuna basıyorum. Ve online repom oluşmuş oluyor. Bu paketi github repomda yayınlamak için öncelikli olarak stage butonuna tıklıyoruz.
  • 17. DOĞUKAN PADEL 17 Yayınlamak istediğimiz dosyaları ister tek tek (add butonu yardımıyla) ister tümünü (add all and commit yardımıyla) seçerek commit butonuna basıyoruz. Zorunlu alanları doldurduktan sonra commit diyoruz. Gelen pop-up da user alanına github kullanıcı adımızı yazıyoruz. Yeni gelen güncelleme ile github şifrenizi yazarak commit işlemini gerçekleştiremiyorsunuz. Bunun yerine tek kullanımlık bir token üretip bu token ile commit işlemini gerçekleştiriyorsunuz.
  • 18. DOĞUKAN PADEL 18 Token üretmek için github  settings  developer settings yolunu izlemeniz gerekir. Personal Access tokens bölümünden generate new token seçeğini seçin. Ben token oluştururken aşağıdaki checkboxlardan sadece repo olanı işaretliyorum. Diğerlerini tercihe göre işaretleyebilirsiniz. Daha sonra generate token butonuna tıklayarak tokenımızı oluşturmuş oluyoruz. Token oluşmuş oldu. Jetonunuz tek kullanımlık oluyor her seferinde regenarate etmeniz gerekir.
  • 19. DOĞUKAN PADEL 19 Jetonu kopyalayıp pop-up’a yapıştırıyoruz. Yürüt diyoruz. Commit işlemi gerçekleşmiş oluyor. Github repomuza baktığımızda sonucu görebiliriz.
  • 20. DOĞUKAN PADEL 20 9. GITHUB’DAN PROJENİN ÇEKİLMESİ Başka bir sistemde bu reponun github’dan sisteme çekilmesi işlemi de oldukça basit. SE38 işlem kodunda ZABAPGIT_STANDALONE uygulamasını çalıştırarak abapGit e erişim sağlıyoruz. New online butonuna tıklıyoruz. Github repomuzun adresini veriyoruz. Daha önceden oluşturduğumuz veya şuan otomatik olarak oluşturulmasını istediğimiz paket ismini veriyoruz ve create online repo butonuna tıklıyoruz.
  • 21. DOĞUKAN PADEL 21 Github repomuzda olan XML ve ABAP dosyaları burada görünüyor olacak. PULL komutu ile verileri hedef sistemimize çekiyoruz. Girdiğim paket ismi mevcut olmadığı ve otomatik olarak oluşturulacağı için bana bir pop-up gösteriyor. Oluşturulacak paketin hangi requestin altında olacağını belirlemek için. Burada ister yeni bir request oluşturabilir isterseniz de var olan bir requesti seçebilirsiniz. İşlem başarılı bir şekilde gerçekleşmiş oluyor. Github reposu ve sistemdeki repo aynı olduğu için pull butonu görünmez oluyor. Github repomuzda bir değişiklik yaptığımızda pull butonu tekrar aktif olacaktır.
  • 22. DOĞUKAN PADEL 22 SE80 üzerinden paketimizi kontrol ettiğimizde github reposundaki tablo ve programın hedef sisteme başarılı bir şekilde aktarıldığını görüyoruz.
  • 23. DOĞUKAN PADEL 23 10. ABAPGIT’ İ SİSTEMDEN KALDIRMA SE38 veya SE80 kullanarak ZABAPGIT* ABAP raporlarını silin. EZABAPGIT kuyruğa alma nesnesini SE11 aracılığıyla silin. SE11 aracılığıyla ZABAPGIT şeffaf tablosunu silin. SMW0 işlemindeki ZABAPGIT_CSS_COMMON + ZABAPGIT_JS_COMMON mime nesnelerini silin. SE24 veya SE80 kullanarak ZIF_APACK_MANIFEST arayüzünü silin (isteğe bağlı, klonlanmış depolar bu arayüzü kullanmaya devam edebilir).
  • 24. DOĞUKAN PADEL 24 11. KAYNAKLAR  https://github.com/abapGit/abapGit  https://docs.abapgit.org/guide-install.html  https://www.youtube.com/watch?v=qbS8l5nbUVU&ab_channel=Dr.KeremKos eoglu  https://saplearners.com/how-to-integrate-abapgit-with-github/  https://blogs.sap.com/2017/06/21/abapgit-so-easy/  https://saplearners.com/how-to-install-abapgit-client-in-sap-abap-system/  https://sapbazar.com/articles/item/2331-how-we-do-abap-code-review-using- abapgit  https://blogs.sap.com/2018/03/23/abap-code-reviews-with-abapgit/  https://blog.titanwolf.in/a?ID=01400-b633cce2-c9ba-422a-b2a5- bc6d24e28402  https://www.simplilearn.com/tutorials/git-tutorial/what-is-git