Neden git pull değilde git pull --rebase kullanılmalı
http://stackoverflow.com/a/7200641/1027507
Dosyaları silmeden son yapılan commiti silmek
git reset --soft HEAD~1
Remoteda olup localde olmayan branchi indirip üzerinde çalışmaya başlamak
git fetch
git checkout --track origin/newFeature
Remotedan silinen fakat localde hala bulunan branchleri silmek
git remote prune origin
Son yapılan commit mesajını değiştirmek
git commit --amend
Acil değişiklik
Bir iş üzerinde çalışırken, başka bir acil iş cıktığında üzerinde çalışılan dosyalar
stashlenerek acil olan iş halledilir. git status
ile bakıldığında sanki dosyalar hiç
düzenlenmemiş gibi görünür. Acil iş yapılır commit edildikten sonra stash pop edilip eski
kalınan yerden devam edilir.
git stash
Conflict dosyalar:
-
Merge edilen branchdeki değişiklikleri kabul et
git checkout --theirs file.txt
-
Bendeki değişiklikleri kabul et
git checkout --ours file.txt
Branchler arası commit transferi
cherry-pick ile bir branchdeki bütün commitleri çekmek yerine sadece lazım olan cimmit çekilebilir.bak
Localde olmayıp remote'da olan branchi checkout etmek
$ git remote update
$ git fetch
$ git checkout -b hede origin/hede
Yapılmış olan bir commite yeni değişikleri ekleme:
git ci --amend -C HEAD
Bu inexde olan dosyaları yapılmış olan commit e ekler
Projeden silinmiş dosyaları index'e ekleme
git ls-files --deleted | xargs git rm
How to modify a specified commit
http://stackoverflow.com/questions/1186535/how-to-modify-a-specified-commit
Branchler arası diff
git diff master..feature foo.py
Untracket dosyalar hariç modified dosyaları index'e eklemek
git add -u
Push edilmemiş commitleri görmek
git log --branches --not --remotes
log --stat parametresi Loglarda olan değişiklikleri loga ek olarak +- olarak görmemizi sağlıyor. Buna benzer bir kaç parametre daha var man pagelerde.
git log --stat
Remote urli gösterme- değiştirme
$ git remote -v
$ git remote set-url origin git://repo_address.git
Önceden yapılmış bir commit üzerinde çalışmak
git rebase --interactive cıkan ekranda pick yazan yeri edit ile değiştirip save yap(Daha fazla seçenekte var. edit yazılan yerde o seçeneklerde var). Değişiklikler bittikten sonrada.
$ git checkout --amend
$ git rebase --continue
Stash'in içeriğini görmek
git stash show -p stash@{0}
Commit mesajları içinde arama yapmak
--grep=
Remote'dan silinmiş branchleri localden de silmek
$ git remote prune origin --dry-run #bul
$ git remote prune origin # sil
Local branchde yapılan bütün değişiklikleri iptal etmek. Local branchi remote ile yenilemek
git reset --hard origin/myBranch
En son çalışılan branche hızlı geçiş. Bashdeki gibi
$ git checkout master
#Switched to branch 'master'
$ git checkout -
#Switched to branch 'develop'
Bir branch/commit'in içindeki dosyaya bakmak:
$ git show {commit_id | branch}:contents/models.py