Last active
October 31, 2023 17:25
-
-
Save erdemoflaz/775a40b05591ac8b73287e574f342864 to your computer and use it in GitHub Desktop.
Git kullanımı | TR
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ------------------------------------------- | |
# GIT NOTLARI - ERDEM OFLAZ |8 ARALIK 2017| | |
# ------------------------------------------- | |
# Paketlerin yüklenmesi | |
aptitude install git | |
# kullanıcı bilgileri | |
git config --global user.name "emrah" | |
git config --global user.email "emrah@mail.com" | |
git config --list | |
cat ~/.gitconfig | |
# ~/.gitconfig | |
[user] | |
name = emrah | |
email = emrah@mail.com | |
[push] | |
default = simple | |
[color] | |
branch = auto | |
diff = auto | |
status = auto | |
# Ana depo oluşturmak | |
mkdir repositories | |
cd repositories | |
mkdir repo1.git | |
cd repo1.git | |
git init --bare | |
# Yerel depoyu, ana depodan klonlayarak oluşturmak | |
- Aynı makinedelerse | |
mkdir repositories | |
cd repositories | |
git clone --no-hardlinks ~/repositories/repo1.git | |
- SSH ile bağlanılacaksa | |
mkdir repositories | |
cd repositories | |
git clone ssh://kullanici@sunucu.adresi:22/~/repositories/repo1.git | |
# Yerel depo oluşturmak (ana depo kullanılmayacak) | |
mkdir repositories | |
cd repositories | |
mkdir repo1.git | |
cd repo1.git | |
git init | |
# Yerel depoda yapılabilecek ilk işlemler (depo henüz boş) | |
cd repositories/repo1.git | |
vim .gitignore | |
(sürüm kontrolü yapılmayacak dosyalar/klasörler yazılır) | |
(Dosyalar ve klasörler oluşturulur) | |
git add -A | |
git commit -m "depo ilk hal" | |
# Ana depo varsa, ana depo güncellenir | |
git push origin master | |
# git add (calisma alanindaki degisiklikleri indekse ekleme) | |
git add file(s) # belirtilen dosyalari eklemek | |
git add . # degisen ve yeni eklenen dosyalari eklemek | |
git add -u # degisen ve silinen dosyalari eklemek | |
git add -A # degisen, yeni eklenen ve silinen dosyalari eklemek | |
# git commit (indeks durumunu, yerel depoya kaydetmek) | |
git commit -m "aciklama notu" | |
# git push (yerel depodaki değişiklikleri, ana depoya aktarmak) | |
git push | |
# git pull (ana deponun son halini, çalışma alanına almak) | |
git pull | |
# git diff (farkları görmek) | |
- calisma alani ve indeks arasindaki farklar | |
git diff | |
- calisma alani ve yerel depo arasindaki farklar | |
git diff HEAD | |
- merge'den etkilenen dosyaların listesi | |
git diff --name-status | |
# git status (calisma alaninin indeks ve yerel depoya gore durumu) | |
git status | |
# git log (commit loglarini gosterme) | |
git log | |
# Çalışma alanında yapılan değişikliği geri almak | |
- henüz add yapılmamışsa... | |
git checkout file(s) # indeksteki kopyaya donme | |
git checkout . # indeksteki kopyaya donme | |
- add yapılmışsa, dolayısı ile indeksteki kopya da değişmiş... | |
git checkout HEAD file(s) # yerel depodaki kopyaya donme | |
git checkout HEAD . # yerel depodaki kopyaya donme | |
# git reset (yapılan commit'i iptal etmek) | |
git reset --hard HEAD~1 # 1 commit geri dönülür. | |
# indeks eski haline gelir. | |
# calisma alani eski haline gelir. | |
git reset HEAD~1 # 1 commit geri dönülür. | |
# indeks eski haline gelir. | |
# calisma alanindaki degisiklikler korunur. | |
git reset --soft HEAD~1 # 1 commit geri dönülür. | |
# indeksteki degisiklikler korunur. | |
# calisma alanindaki degisiklikler korunur. | |
# git revert (yapılan commit'i iptal eden patch ekleme) | |
git revert <commit_id> | |
# eski surumlere ulaşmak | |
git log file1 | |
git show 0323e5918144ec29a069c7ab23cac40ed921d31d:file1 | |
git show HEAD:file1 | |
git show HEAD~2:file1 | |
git tag v0.1 0323e5918144ec29a069c7ab23cac40ed921d31d | |
git show v0.1:file1 | |
git show v0.1:file2 | |
vim file1 | |
git reset file1 | |
rm file1 | |
git checkout -f file1 | |
# Güncelleme çakışmalarını çözmek. | |
- push aşamasında aynı anda güncellenmiş dosyaların listesi yer alır. | |
- Dosya içinde eklenen ve çıkan satırlar işaretlidir. Bu kısımlar | |
düzeltilir. | |
- Düzeltilmiş değişklikler commit edilir. | |
git add . | |
git commit -m "merged" | |
git push | |
# branch ile çalışma | |
- branch oluşturma | |
git branch test | |
- branch 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 | |
# henüz yayınlanmaya hazır değişikliklerimiz varken depodan güncelleme | |
git stash save | |
git pull | |
git stash apply | |
# Birden fazla remote depo ile çalışmak | |
- remote listesi | |
git remote -v | |
- remote ekleme | |
git remote add github git@github.com:emrahcom/www_emrah_com.git | |
- remote silme | |
git remote rm github | |
- remote push | |
git push origin master | |
git push github master | |
# ----------------------------------------------------------------------------- | |
# GITOLITE SUNUCU | |
# ----------------------------------------------------------------------------- | |
# Paketlerin kurulumu | |
aptitude install gitolite | |
dpkg-reconfigure gitolite | |
# Gitolite home klasörünü değiştirme | |
normalde /var/lib/gitolite kullanılıyor. Gerekmiyorsa değiştirme. | |
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 emrah gitolite | |
# Gitolite admin kullanıcısının public anahtarı | |
cp emrah.pub /tmp/ | |
chmod a+r /tmp/emrah.pub | |
su -l gitolite | |
gl-setup /tmp/emrah.pub | |
# ----------------------------------------------------------------------------- | |
# GITOLIE CLIENT (ADMIN) | |
# ----------------------------------------------------------------------------- | |
Bu işlemler, admin kullanıcısının makinesinde yapılır. | |
# Anahtarı yükleme | |
ssh-add .ssh/emrah | |
# 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 anahtari 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 -A | |
git commit -m 'depo1, kullanici1 ve kullanici2 eklendi' | |
git push | |
# ----------------------------------------------------------------------------- | |
# GITOLIE CLIENT (USER) | |
# ----------------------------------------------------------------------------- | |
Bu işlemler, Gitolite depolarını kullanacak kullanıcıların makinelerinde | |
yapılır. | |
# 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 -A | |
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 -A # commit listesine ekleme | |
git commit -m 'aciklama' # yerel depoyu guncelleme | |
git push # ana depoyu guncelleme | |
# Yapılan değişiklikleri yerel depomuzda saklayıp ana depodaki son hale dönme | |
git stash save | |
git stash list | |
git stash drop stash@{0} # Sakladığımız değişikliği silme | |
git stash clear # Sakladığımız bütün değişiklikleri silme | |
git stash apply stash@{0} # Sakladığımız değişikliği tekrardan uygulama | |
git stash pop # Sakladığımız son değişikliği uygulama | |
# ----------------------------------------------------------------------------- | |
# GITWEB | |
# ----------------------------------------------------------------------------- | |
Sadece parolayı bilen kullanıcılar gitweb arayüzünü kullanabilecek. | |
# Paketlerin kurulumu | |
aptitude install gitweb | |
# Ayarlar | |
- /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 | |
# ----------------------------------------------------------------------------- | |
# KAYNAKLAR | |
# ----------------------------------------------------------------------------- | |
http://www.kernel.org/pub/software/scm/git/docs/user-manual.html | |
https://we.riseup.net/debian/git-development-howto | |
http://sitaramc.github.com/gitolite/doc/1-INSTALL.html (gitolite kurulum) | |
http://sitaramc.github.com/gitolite/doc/2-admin.html (gitolite yönetim) | |
http://marklodato.github.com/visual-git-guide/index-en.html | |
http://gitready.com/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment