Merih Forum Programlama ve yazılım algoritmalar programlama Git nasıl kullanılır? Git Kullanımı!

  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Git nasıl kullanılır? Git Kullanımı!

 
#1

Git repository, git kurulumu, gitolite kurulumu, gitweb kurulumu ve notları.
Versiyon yönetim sistemi olarak Git notlarım "kullanım dökümanı"

Git Kurulumu için gerekli paketler 
aptitude install git-core gitk git-gui

Git için kullanıcı bilgileri oluşturma 
git config --global user.name "husonet"
git config --global user.email "husonet@mail.com"
git config --list
cat ~/.gitconfig


"Local" Yerel depoda kullanılacak komutlar 
git init
vim .gitignore
git add file(s)
git add . # yeni oluşturulan ve bütün değişen dosyalari guncellenecekler listesine ekle
git add -u # değişiklik olmuş veya silinmiş dosyaları güncellenecekler listesine ekle
git commit -m 'not' # güncelle
git diff # son güncelleme ve mevcut durum arasındaki farklar
git status # değişen dosyalar
git log # güncelleme geçmişi



Örnek 
mkdir kaynak
cd kaynak
touch dosya1
touch dosya2
touch dosya3
git init
echo dosya3 > .gitignore

git status
git add .
git status
git commit -m 'ilk commit notumuz'
git status
git log

echo 'xxx' >> dosya1
git diff HEAD #(veya sadece git diff)
git add dosya1
git commit -m 'ikinci commit notumuz' # Bu kısımda Türkçe karakter kullanmamakta fayda olacağını düşünüyorum
git log



Uzak depo 
Ana depyu oluşturmak 
"bare ile oluşturulan depoda doğrudan değişiklik yapılamaz."
cd
mkdir depo
cd depo
git --bare init

"depoyu klonlamak"
cd
mkdir yerel
cd yerel
git clone ~/depo proje1 # aynı dosya sisteminde
git ssh://adres:port/~/depo proje1 # ssh ile

"son değişiklikleri ana depodan almak"
cd ~/yerel/proje1
git pull

"değişiklik yapıp ana depoya yükleme"
cd ~/yerel/proje1
#(değişiklikleri yap)
git add .
git commit -m 'degisiklik yapildi'
git pull
# sorun yoksa
git push origin master



Örnek Uzaktan Yeni Depo Oluşturma 
git clone ssh://gitolite@192.168.1.51:22/pythontr.com
cd pythontr.com
git add .
git commit -m "pythontr.com ilk depo"
git push origin master



eski sürümlere ulaşmak 
git log dosya1
git show 0323e5918144ec29a069c7ab23cac40ed921d31d:file1

git tag v0.1 0323e5918144ec29a069c7ab23cac40ed921d31d
git show v0.1:file1
git show v0.1:file2

vim dosya1
git reset dosya1
rm dosya1
git checkout -f dosya1



branch ile çalışma 
# branch oluşturma
git branch test

# branc listesi
git branch

# branch değiştirme
git checkout test
git checkout master

# branch merge
git checkout test
git commit -a
git checkout master
git commit -a
git merge test

# branch silme
git branch -d test



depoyu klonlamak (klasör henuz yok, emc2-dev adıyla oluşacak) 
git clone git://git.linuxcnc.org/git/emc2.git emc2-dev


depodan son değişiklikleri almak 
git pull --rebase


kendi değişikliklerimizi depoya yüklemek 
# (yaptıklarımız yerel depoya commit edilecek)
git pull --rebase
# (çakışma varsa düzeltilecek)
git push



henüz yayınlanmaya hazır değişikliklerimiz varken depodan güncelleme 
git stash save
git pull --rebase
git stash apply



Gitolite sunucu ayarları 
Client makinaların depoya dosya bırakıp almak için kullanacağımız diziler. 
# Kurulum
aptitude install gitolite

# Gitolite home klasörünü değiştirmek (normalde /var/lib/gitolite)
mkdir /home/gitolite
chown gitolite: /home/gitolite
vim /etc/passwd
gitolite home klasörü -> /home/gitolite

# Gitolite kullanıcısı için ssh erişim izni.
vim /etc/ssh/sshd_config
AllowUsers husonet gitolite

# Gitolite admin kullanıcısı ve admin deposu
cp husonet.pub /tmp/
chmod a+r /tmp/husonet.pub
su -l gitolite
gl-setup /tmp/husonet.pub



Gitolite admin ayarları (admin makinesi) 
# Anahtarı yükleme
ssh-add .ssh/husonet

# Gitolite admin deposunu klonlama (SSH 22. port ile)
git clone ssh://gitolite@10.10.10.10:22/gitolite-admin
cd gitolite-admin
git pull

# Kullanıcı ve depo ekleme
# Kullanıcının public anahtarı alınır ve kullanıcının adı ile kaydedilir.
# depo1 adlı depoda kullanici1'in yazma/okuma, kullanici2'nin sadece okuma hakkı
# olacaksa:

cp kullanici1.pub gitolite-admin/keydir/
cp kullanici2.pub gitolite-admin/keydir/
vim gitolite-admin/conf/gitolite.conf
repo depo1
RW+ = kullanici1
R = kullanici2

git status
git add .
git commit -m 'depo1, kullanici1 ve kullanici2 eklendi'
git push



Kullanıcı Client tarafı 
# Anahtarı yükleme
ssh-add .ssh/kullanici1

# Depo boşken ilk kullanıldığında
git clone ssh://gitolite@10.10.10.10:22/depo1
cd depo1
touch OKUBENI
git add .
git commit -m "depo1 olusturuldu"
git push origin master

# Depoyu klonlama
git clone ssh://gitolite@10.10.10.10:22/depo1
cd depo1
git pull

# Depodan son değişiklikleri alma
git pull

# Yapılan değişikliklerin depoya yüklenmesi
git status # degisen dosyalar
git diff # farkliliklari gormek icin
git add . # commit listesine ekleme
git commit -m 'aciklama'   # yerel depoyu guncelleme
git push # ana depoyu guncelleme



Gitweb 
Sadece parolayı bilen kullanıcılar gitweb arayüzünü kullanbilecek. 

Kurulum 
aptitude install gitweb


Ayarlar 
vim /etc/gitweb.conf
#$projectroot = "/var/cache/git";
$projectroot = "/home/gitolite/repositories";

# www-data kullanıcısı gitolite grubuna
adduser www-data gitolite

# Group için gitolite depolarını okuma hakkı
/home/gitolite/.gitolite.rc
$REPO_UMASK = 0027;

# Gitweb için .htaccess düzenleme izni
/etc/apache2/conf.d/gitweb
AllowOverride AuthConfig Options

# .htaccess dosyasının oluşturulması
/usr/share/gitweb/.htaccess
AuthUserFile    /home/gitolite/htaccess/htpasswd
AuthType        Basic
AuthName        "..."
Require valid-user
# . htpasswd dosyasının oluşturulması
su -l gitolite
mkdir /home/gitolite/htaccess
cd /home/gitolite/htaccess
htpasswd -sc htpasswd kullanici1 # ilk kullanici icin
htpasswd -s htpasswd kullanici2
chmod 750 /home/gitolite/htaccess
chmod 640 /home/gitolite/htaccess/htpasswd



Son olarak repolarımızın yetki iznini ayarlayalım 
chmod -R g+rx /home/gitolite/repositories


kaynaklar 
http://www.kernel.org/pub/software/scm/git/docs/user-manual.html [kernel.org] 
https://we.riseup.net/debian/git-development-howto [we.riseup.net] 
http://www.emrah.com [emrah.com]



Ara
Cevapla


[-]
Hızlı Cevap

İnsan Doğrulama:
Aşağıda görünen onay kutusunu işaretleyiniz. Bu işlem otomatik spam kayıtları önlemek için kullanılır.

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Gulp’ta Yavaş Çalışan Uglify Derlemesi Nasıl Düzeltilir? kıllıbacak 0 417 23-03-2019, Saat: 22:50
Son Yorum: kıllıbacak
  Localhost’a IonCube Nasıl Kurulur? dalaylama 0 605 15-02-2019, Saat: 23:17
Son Yorum: dalaylama
  Localhost nedir ? Nasıl kurulur ? kıllıbacak 0 506 03-02-2019, Saat: 18:34
Son Yorum: kıllıbacak
  Bitcoin Nedir? Bitcoin Nasıl Üretilir? Kripto Sanal Para kıllıbacak 0 532 27-01-2019, Saat: 18:43
Son Yorum: kıllıbacak
  AWS (Amazon Web Services) Nedir? – Nasıl Kullanılır, Terminoloji ve Kavramlar – Bölüm xray 0 1,833 01-12-2017, Saat: 22:17
Son Yorum: xray

Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


Konuyu Okuyanlar:
1 Ziyaretçi

   
Türkçe Çeviri: MCTR, Forum Yazılımı: MyBB, © 2002-2020 MyBB Group.  



Merih Forum® bilgi paylaşım platformu. 2015-2020 Tüm hakları saklıdır.