[{"data":1,"prerenderedAt":1210},["ShallowReactive",2],{"page-tr-\u002Fblog\u002Fgit-commands-every-developer-should-know":3},{"id":4,"title":5,"body":6,"date":1199,"description":1200,"extension":1201,"meta":1202,"navigation":230,"path":1203,"seo":1204,"stem":1205,"tags":1206,"translation":1208,"__hash__":1209},"pages_tr\u002Ftr\u002Fblog\u002Fgit-commands-every-developer-should-know.md","Her Geliştiricinin Bilmesi Gereken Git Komutları",{"type":7,"value":8,"toc":1189},"minimark",[9,14,27,38,42,45,131,134,184,188,199,328,339,430,434,440,538,541,602,651,654,673,677,690,827,837,841,844,907,918,925,1006,1017,1053,1057,1060,1116,1119,1166,1170,1185],[10,11,13],"h2",{"id":12},"giriş","Giriş",[15,16,17,18,22,23,26],"p",{},"Git'te günlük işin büyük kısmı yaklaşık 20 komutla yapılır; bu yazı o komutları kullanım sırasıyla, örnekleriyle topluyor. İster yeni başlıyor olun ister yıllardır kullanıyor olun, ",[19,20,21],"code",{},"reset"," ile ",[19,24,25],{},"revert"," arasındaki farkı ya da kaybolmuş bir commit'i nasıl geri getireceğinizi hızlıca hatırlamak için bu sayfayı yer imlerine ekleyebilirsiniz.",[15,28,29,30,33,34,37],{},"Örneklerde ",[19,31,32],{},"main"," ana branch, ",[19,35,36],{},"origin"," ise uzak repo adı olarak kullanılıyor.",[10,39,41],{"id":40},"_1-kurulum-ve-yapılandırma","1. Kurulum ve yapılandırma",[15,43,44],{},"Git'i ilk kurduğunuzda kimliğinizi bir kez tanıtmanız yeterli; bu bilgiler her commit'e yazılır.",[46,47,52],"pre",{"className":48,"code":49,"language":50,"meta":51,"style":51},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","git config --global user.name \"Ad Soyad\"\ngit config --global user.email \"ad@ornek.com\"\ngit config --global init.defaultBranch main\ngit config --list          # tüm ayarları göster\n","bash","",[19,53,54,83,102,117],{"__ignoreMap":51},[55,56,59,63,67,70,73,77,80],"span",{"class":57,"line":58},"line",1,[55,60,62],{"class":61},"sBMFI","git",[55,64,66],{"class":65},"sfazB"," config",[55,68,69],{"class":65}," --global",[55,71,72],{"class":65}," user.name",[55,74,76],{"class":75},"sMK4o"," \"",[55,78,79],{"class":65},"Ad Soyad",[55,81,82],{"class":75},"\"\n",[55,84,86,88,90,92,95,97,100],{"class":57,"line":85},2,[55,87,62],{"class":61},[55,89,66],{"class":65},[55,91,69],{"class":65},[55,93,94],{"class":65}," user.email",[55,96,76],{"class":75},[55,98,99],{"class":65},"ad@ornek.com",[55,101,82],{"class":75},[55,103,105,107,109,111,114],{"class":57,"line":104},3,[55,106,62],{"class":61},[55,108,66],{"class":65},[55,110,69],{"class":65},[55,112,113],{"class":65}," init.defaultBranch",[55,115,116],{"class":65}," main\n",[55,118,120,122,124,127],{"class":57,"line":119},4,[55,121,62],{"class":61},[55,123,66],{"class":65},[55,125,126],{"class":65}," --list",[55,128,130],{"class":129},"sHwdD","          # tüm ayarları göster\n",[15,132,133],{},"Yeni bir proje başlatmak ya da var olan bir repoyu indirmek için:",[46,135,137],{"className":48,"code":136,"language":50,"meta":51,"style":51},"git init                                   # bulunduğun klasörü repo yap\ngit clone https:\u002F\u002Fgithub.com\u002Fkullanici\u002Fproje.git\ngit clone \u003Curl> yeni-klasor-adi            # farklı klasöre klonla\n",[19,138,139,149,159],{"__ignoreMap":51},[55,140,141,143,146],{"class":57,"line":58},[55,142,62],{"class":61},[55,144,145],{"class":65}," init",[55,147,148],{"class":129},"                                   # bulunduğun klasörü repo yap\n",[55,150,151,153,156],{"class":57,"line":85},[55,152,62],{"class":61},[55,154,155],{"class":65}," clone",[55,157,158],{"class":65}," https:\u002F\u002Fgithub.com\u002Fkullanici\u002Fproje.git\n",[55,160,161,163,165,168,171,175,178,181],{"class":57,"line":104},[55,162,62],{"class":61},[55,164,155],{"class":65},[55,166,167],{"class":75}," \u003C",[55,169,170],{"class":65},"ur",[55,172,174],{"class":173},"sTEyZ","l",[55,176,177],{"class":75},">",[55,179,180],{"class":65}," yeni-klasor-adi",[55,182,183],{"class":129},"            # farklı klasöre klonla\n",[10,185,187],{"id":186},"_2-günlük-iş-akışı","2. Günlük iş akışı",[15,189,190,191,194,195,198],{},"Değişiklikler üç aşamadan geçer: çalışma dizini → staging alanı (",[19,192,193],{},"add",") → repo geçmişi (",[19,196,197],{},"commit",").",[46,200,202],{"className":48,"code":201,"language":50,"meta":51,"style":51},"git status                 # neler değişti, neler stage'de\ngit status -s              # kısa format\n\ngit add dosya.java         # tek dosyayı stage'e al\ngit add .                  # tüm değişiklikleri al\ngit add -p                 # değişiklikleri parça parça seçerek al\n\ngit commit -m \"Login validasyonu eklendi\"\ngit commit -am \"Mesaj\"     # takip edilen dosyaları add + commit\ngit commit --amend         # son commit'i düzelt (push etmeden önce!)\n",[19,203,204,214,226,232,245,258,271,276,294,315],{"__ignoreMap":51},[55,205,206,208,211],{"class":57,"line":58},[55,207,62],{"class":61},[55,209,210],{"class":65}," status",[55,212,213],{"class":129},"                 # neler değişti, neler stage'de\n",[55,215,216,218,220,223],{"class":57,"line":85},[55,217,62],{"class":61},[55,219,210],{"class":65},[55,221,222],{"class":65}," -s",[55,224,225],{"class":129},"              # kısa format\n",[55,227,228],{"class":57,"line":104},[55,229,231],{"emptyLinePlaceholder":230},true,"\n",[55,233,234,236,239,242],{"class":57,"line":119},[55,235,62],{"class":61},[55,237,238],{"class":65}," add",[55,240,241],{"class":65}," dosya.java",[55,243,244],{"class":129},"         # tek dosyayı stage'e al\n",[55,246,248,250,252,255],{"class":57,"line":247},5,[55,249,62],{"class":61},[55,251,238],{"class":65},[55,253,254],{"class":65}," .",[55,256,257],{"class":129},"                  # tüm değişiklikleri al\n",[55,259,261,263,265,268],{"class":57,"line":260},6,[55,262,62],{"class":61},[55,264,238],{"class":65},[55,266,267],{"class":65}," -p",[55,269,270],{"class":129},"                 # değişiklikleri parça parça seçerek al\n",[55,272,274],{"class":57,"line":273},7,[55,275,231],{"emptyLinePlaceholder":230},[55,277,279,281,284,287,289,292],{"class":57,"line":278},8,[55,280,62],{"class":61},[55,282,283],{"class":65}," commit",[55,285,286],{"class":65}," -m",[55,288,76],{"class":75},[55,290,291],{"class":65},"Login validasyonu eklendi",[55,293,82],{"class":75},[55,295,297,299,301,304,306,309,312],{"class":57,"line":296},9,[55,298,62],{"class":61},[55,300,283],{"class":65},[55,302,303],{"class":65}," -am",[55,305,76],{"class":75},[55,307,308],{"class":65},"Mesaj",[55,310,311],{"class":75},"\"",[55,313,314],{"class":129},"     # takip edilen dosyaları add + commit\n",[55,316,318,320,322,325],{"class":57,"line":317},10,[55,319,62],{"class":61},[55,321,283],{"class":65},[55,323,324],{"class":65}," --amend",[55,326,327],{"class":129},"         # son commit'i düzelt (push etmeden önce!)\n",[15,329,330,331,334,335,338],{},"Neyin değiştiğini görmek için ",[19,332,333],{},"diff",", geçmişe bakmak için ",[19,336,337],{},"log"," kullanılır:",[46,340,342],{"className":48,"code":341,"language":50,"meta":51,"style":51},"git diff                   # stage'e alınmamış farklar\ngit diff --staged          # commit'lenecek farklar\ngit log --oneline --graph --all   # okunaklı branch geçmişi\ngit log -p dosya.java      # bir dosyanın değişim geçmişi\ngit show \u003Ccommit>          # tek commit'in detayı\ngit blame dosya.java       # hangi satırı kim değiştirdi\n",[19,343,344,354,366,385,398,418],{"__ignoreMap":51},[55,345,346,348,351],{"class":57,"line":58},[55,347,62],{"class":61},[55,349,350],{"class":65}," diff",[55,352,353],{"class":129},"                   # stage'e alınmamış farklar\n",[55,355,356,358,360,363],{"class":57,"line":85},[55,357,62],{"class":61},[55,359,350],{"class":65},[55,361,362],{"class":65}," --staged",[55,364,365],{"class":129},"          # commit'lenecek farklar\n",[55,367,368,370,373,376,379,382],{"class":57,"line":104},[55,369,62],{"class":61},[55,371,372],{"class":65}," log",[55,374,375],{"class":65}," --oneline",[55,377,378],{"class":65}," --graph",[55,380,381],{"class":65}," --all",[55,383,384],{"class":129},"   # okunaklı branch geçmişi\n",[55,386,387,389,391,393,395],{"class":57,"line":119},[55,388,62],{"class":61},[55,390,372],{"class":65},[55,392,267],{"class":65},[55,394,241],{"class":65},[55,396,397],{"class":129},"      # bir dosyanın değişim geçmişi\n",[55,399,400,402,405,407,410,413,415],{"class":57,"line":247},[55,401,62],{"class":61},[55,403,404],{"class":65}," show",[55,406,167],{"class":75},[55,408,409],{"class":65},"commi",[55,411,412],{"class":173},"t",[55,414,177],{"class":75},[55,416,417],{"class":129},"          # tek commit'in detayı\n",[55,419,420,422,425,427],{"class":57,"line":260},[55,421,62],{"class":61},[55,423,424],{"class":65}," blame",[55,426,241],{"class":65},[55,428,429],{"class":129},"       # hangi satırı kim değiştirdi\n",[10,431,433],{"id":432},"_3-branch-işlemleri","3. Branch işlemleri",[15,435,436,437,439],{},"Her özellik veya hata düzeltmesi için ayrı bir branch açmak, ",[19,438,32],{},"'i temiz tutmanın en kolay yoludur.",[46,441,443],{"className":48,"code":442,"language":50,"meta":51,"style":51},"git branch                 # yerel branch'ler\ngit branch -a              # uzak branch'ler dahil\ngit switch -c feature\u002Flogin     # yeni branch aç ve geç\ngit switch main                 # branch değiştir\ngit checkout -b feature\u002Flogin   # eski sözdizimi, aynı iş\ngit branch -d feature\u002Flogin     # birleşmiş branch'i sil\ngit branch -D feature\u002Flogin     # zorla sil\n",[19,444,445,455,467,483,495,510,524],{"__ignoreMap":51},[55,446,447,449,452],{"class":57,"line":58},[55,448,62],{"class":61},[55,450,451],{"class":65}," branch",[55,453,454],{"class":129},"                 # yerel branch'ler\n",[55,456,457,459,461,464],{"class":57,"line":85},[55,458,62],{"class":61},[55,460,451],{"class":65},[55,462,463],{"class":65}," -a",[55,465,466],{"class":129},"              # uzak branch'ler dahil\n",[55,468,469,471,474,477,480],{"class":57,"line":104},[55,470,62],{"class":61},[55,472,473],{"class":65}," switch",[55,475,476],{"class":65}," -c",[55,478,479],{"class":65}," feature\u002Flogin",[55,481,482],{"class":129},"     # yeni branch aç ve geç\n",[55,484,485,487,489,492],{"class":57,"line":119},[55,486,62],{"class":61},[55,488,473],{"class":65},[55,490,491],{"class":65}," main",[55,493,494],{"class":129},"                 # branch değiştir\n",[55,496,497,499,502,505,507],{"class":57,"line":247},[55,498,62],{"class":61},[55,500,501],{"class":65}," checkout",[55,503,504],{"class":65}," -b",[55,506,479],{"class":65},[55,508,509],{"class":129},"   # eski sözdizimi, aynı iş\n",[55,511,512,514,516,519,521],{"class":57,"line":260},[55,513,62],{"class":61},[55,515,451],{"class":65},[55,517,518],{"class":65}," -d",[55,520,479],{"class":65},[55,522,523],{"class":129},"     # birleşmiş branch'i sil\n",[55,525,526,528,530,533,535],{"class":57,"line":273},[55,527,62],{"class":61},[55,529,451],{"class":65},[55,531,532],{"class":65}," -D",[55,534,479],{"class":65},[55,536,537],{"class":129},"     # zorla sil\n",[15,539,540],{},"Branch'leri birleştirmenin iki yolu var:",[46,542,544],{"className":48,"code":543,"language":50,"meta":51,"style":51},"git switch main\ngit merge feature\u002Flogin    # merge commit ile birleştir\ngit switch feature\u002Flogin\ngit rebase main            # commit'leri main'in ucuna taşı\ngit rebase -i HEAD~3       # son 3 commit'i düzenle\u002Fbirleştir (squash)\n",[19,545,546,554,566,575,587],{"__ignoreMap":51},[55,547,548,550,552],{"class":57,"line":58},[55,549,62],{"class":61},[55,551,473],{"class":65},[55,553,116],{"class":65},[55,555,556,558,561,563],{"class":57,"line":85},[55,557,62],{"class":61},[55,559,560],{"class":65}," merge",[55,562,479],{"class":65},[55,564,565],{"class":129},"    # merge commit ile birleştir\n",[55,567,568,570,572],{"class":57,"line":104},[55,569,62],{"class":61},[55,571,473],{"class":65},[55,573,574],{"class":65}," feature\u002Flogin\n",[55,576,577,579,582,584],{"class":57,"line":119},[55,578,62],{"class":61},[55,580,581],{"class":65}," rebase",[55,583,491],{"class":65},[55,585,586],{"class":129},"            # commit'leri main'in ucuna taşı\n",[55,588,589,591,593,596,599],{"class":57,"line":247},[55,590,62],{"class":61},[55,592,581],{"class":65},[55,594,595],{"class":65}," -i",[55,597,598],{"class":65}," HEAD~3",[55,600,601],{"class":129},"       # son 3 commit'i düzenle\u002Fbirleştir (squash)\n",[603,604,605,621],"table",{},[606,607,608],"thead",{},[609,610,611,615,618],"tr",{},[612,613,614],"th",{},"Komut",[612,616,617],{},"Ne yapar",[612,619,620],{},"Ne zaman",[622,623,624,638],"tbody",{},[609,625,626,632,635],{},[627,628,629],"td",{},[19,630,631],{},"merge",[627,633,634],{},"Geçmişi korur, merge commit ekler",[627,636,637],{},"Paylaşılan branch'lerde",[609,639,640,645,648],{},[627,641,642],{},[19,643,644],{},"rebase",[627,646,647],{},"Geçmişi doğrusal hale getirir",[627,649,650],{},"Henüz push edilmemiş yerel branch'lerde",[15,652,653],{},"Altın kural: başkalarının da kullandığı, push edilmiş bir branch'i rebase etmeyin.",[15,655,656,657,660,661,664,665,668,669,672],{},"Çakışma (conflict) olursa dosyaları düzeltip ",[19,658,659],{},"git add"," yapın, ardından ",[19,662,663],{},"git merge --continue"," veya ",[19,666,667],{},"git rebase --continue"," ile devam edin; vazgeçmek için ",[19,670,671],{},"--abort",".",[10,674,676],{"id":675},"_4-uzak-repo-ile-çalışma","4. Uzak repo ile çalışma",[15,678,679,682,683,686,687,689],{},[19,680,681],{},"fetch"," sadece indirir, ",[19,684,685],{},"pull"," indirip birleştirir; emin değilseniz önce ",[19,688,681],{}," yapıp neyin geldiğine bakın.",[46,691,693],{"className":48,"code":692,"language":50,"meta":51,"style":51},"git remote -v                          # bağlı uzak repolar\ngit remote add origin \u003Curl>            # uzak repo ekle\n\ngit fetch origin                       # değişiklikleri indir, birleştirme\ngit pull                               # fetch + merge\ngit pull --rebase                      # fetch + rebase (daha temiz geçmiş)\n\ngit push                               # mevcut branch'i gönder\ngit push -u origin feature\u002Flogin       # ilk push, upstream'i ayarla\ngit push --force-with-lease            # rebase sonrası güvenli zorla push\ngit push origin --delete feature\u002Flogin # uzak branch'i sil\n",[19,694,695,708,730,734,746,756,768,772,782,798,810],{"__ignoreMap":51},[55,696,697,699,702,705],{"class":57,"line":58},[55,698,62],{"class":61},[55,700,701],{"class":65}," remote",[55,703,704],{"class":65}," -v",[55,706,707],{"class":129},"                          # bağlı uzak repolar\n",[55,709,710,712,714,716,719,721,723,725,727],{"class":57,"line":85},[55,711,62],{"class":61},[55,713,701],{"class":65},[55,715,238],{"class":65},[55,717,718],{"class":65}," origin",[55,720,167],{"class":75},[55,722,170],{"class":65},[55,724,174],{"class":173},[55,726,177],{"class":75},[55,728,729],{"class":129},"            # uzak repo ekle\n",[55,731,732],{"class":57,"line":104},[55,733,231],{"emptyLinePlaceholder":230},[55,735,736,738,741,743],{"class":57,"line":119},[55,737,62],{"class":61},[55,739,740],{"class":65}," fetch",[55,742,718],{"class":65},[55,744,745],{"class":129},"                       # değişiklikleri indir, birleştirme\n",[55,747,748,750,753],{"class":57,"line":247},[55,749,62],{"class":61},[55,751,752],{"class":65}," pull",[55,754,755],{"class":129},"                               # fetch + merge\n",[55,757,758,760,762,765],{"class":57,"line":260},[55,759,62],{"class":61},[55,761,752],{"class":65},[55,763,764],{"class":65}," --rebase",[55,766,767],{"class":129},"                      # fetch + rebase (daha temiz geçmiş)\n",[55,769,770],{"class":57,"line":273},[55,771,231],{"emptyLinePlaceholder":230},[55,773,774,776,779],{"class":57,"line":278},[55,775,62],{"class":61},[55,777,778],{"class":65}," push",[55,780,781],{"class":129},"                               # mevcut branch'i gönder\n",[55,783,784,786,788,791,793,795],{"class":57,"line":296},[55,785,62],{"class":61},[55,787,778],{"class":65},[55,789,790],{"class":65}," -u",[55,792,718],{"class":65},[55,794,479],{"class":65},[55,796,797],{"class":129},"       # ilk push, upstream'i ayarla\n",[55,799,800,802,804,807],{"class":57,"line":317},[55,801,62],{"class":61},[55,803,778],{"class":65},[55,805,806],{"class":65}," --force-with-lease",[55,808,809],{"class":129},"            # rebase sonrası güvenli zorla push\n",[55,811,813,815,817,819,822,824],{"class":57,"line":812},11,[55,814,62],{"class":61},[55,816,778],{"class":65},[55,818,718],{"class":65},[55,820,821],{"class":65}," --delete",[55,823,479],{"class":65},[55,825,826],{"class":129}," # uzak branch'i sil\n",[15,828,829,832,833,836],{},[19,830,831],{},"--force"," yerine her zaman ",[19,834,835],{},"--force-with-lease"," kullanın: bu, siz son baktığınızdan beri başkası push ettiyse işlemi durdurur.",[10,838,840],{"id":839},"_5-hataları-geri-almak","5. Hataları geri almak",[15,842,843],{},"Neyi geri almak istediğinize göre doğru komut değişir:",[603,845,846,855],{},[606,847,848],{},[609,849,850,853],{},[612,851,852],{},"Durum",[612,854,614],{},[622,856,857,867,877,887,897],{},[609,858,859,862],{},[627,860,861],{},"Dosyadaki kaydedilmemiş değişikliği at",[627,863,864],{},[19,865,866],{},"git restore dosya.java",[609,868,869,872],{},[627,870,871],{},"Dosyayı stage'den çıkar",[627,873,874],{},[19,875,876],{},"git restore --staged dosya.java",[609,878,879,882],{},[627,880,881],{},"Son commit'i geri al, değişiklikler kalsın",[627,883,884],{},[19,885,886],{},"git reset --soft HEAD~1",[609,888,889,892],{},[627,890,891],{},"Son commit'i ve değişiklikleri tamamen sil",[627,893,894],{},[19,895,896],{},"git reset --hard HEAD~1",[609,898,899,902],{},[627,900,901],{},"Push edilmiş commit'i güvenle geri al",[627,903,904],{},[19,905,906],{},"git revert \u003Ccommit>",[15,908,909,911,912,914,915,917],{},[19,910,21],{}," geçmişi yeniden yazar, ",[19,913,25],{}," ise geri alan yeni bir commit ekler; paylaşılan branch'lerde her zaman ",[19,916,25],{}," kullanın.",[15,919,920,921,924],{},"Yarım kalan işi kenara koymak için ",[19,922,923],{},"stash",":",[46,926,928],{"className":48,"code":927,"language":50,"meta":51,"style":51},"git stash                      # değişiklikleri sakla\ngit stash push -m \"yarım login\"   # isimle sakla\ngit stash list                 # saklananları listele\ngit stash pop                  # son stash'i geri getir ve sil\ngit stash apply stash@{1}      # belirli stash'i uygula\n",[19,929,930,940,960,972,984],{"__ignoreMap":51},[55,931,932,934,937],{"class":57,"line":58},[55,933,62],{"class":61},[55,935,936],{"class":65}," stash",[55,938,939],{"class":129},"                      # değişiklikleri sakla\n",[55,941,942,944,946,948,950,952,955,957],{"class":57,"line":85},[55,943,62],{"class":61},[55,945,936],{"class":65},[55,947,778],{"class":65},[55,949,286],{"class":65},[55,951,76],{"class":75},[55,953,954],{"class":65},"yarım login",[55,956,311],{"class":75},[55,958,959],{"class":129},"   # isimle sakla\n",[55,961,962,964,966,969],{"class":57,"line":104},[55,963,62],{"class":61},[55,965,936],{"class":65},[55,967,968],{"class":65}," list",[55,970,971],{"class":129},"                 # saklananları listele\n",[55,973,974,976,978,981],{"class":57,"line":119},[55,975,62],{"class":61},[55,977,936],{"class":65},[55,979,980],{"class":65}," pop",[55,982,983],{"class":129},"                  # son stash'i geri getir ve sil\n",[55,985,986,988,990,993,996,1000,1003],{"class":57,"line":247},[55,987,62],{"class":61},[55,989,936],{"class":65},[55,991,992],{"class":65}," apply",[55,994,995],{"class":65}," stash@{",[55,997,999],{"class":998},"sbssI","1",[55,1001,1002],{"class":65},"}",[55,1004,1005],{"class":129},"      # belirli stash'i uygula\n",[15,1007,1008,1009,1012,1013,1016],{},"Son çare ",[19,1010,1011],{},"reflog","'dur: ",[19,1014,1015],{},"reset --hard"," sonrası \"kaybolan\" commit'ler bile burada görünür.",[46,1018,1020],{"className":48,"code":1019,"language":50,"meta":51,"style":51},"git reflog                     # HEAD'in gittiği her yer\ngit reset --hard HEAD@{2}      # o noktaya geri dön\n",[19,1021,1022,1032],{"__ignoreMap":51},[55,1023,1024,1026,1029],{"class":57,"line":58},[55,1025,62],{"class":61},[55,1027,1028],{"class":65}," reflog",[55,1030,1031],{"class":129},"                     # HEAD'in gittiği her yer\n",[55,1033,1034,1036,1039,1042,1045,1048,1050],{"class":57,"line":85},[55,1035,62],{"class":61},[55,1037,1038],{"class":65}," reset",[55,1040,1041],{"class":65}," --hard",[55,1043,1044],{"class":65}," HEAD@{",[55,1046,1047],{"class":998},"2",[55,1049,1002],{"class":65},[55,1051,1052],{"class":129},"      # o noktaya geri dön\n",[10,1054,1056],{"id":1055},"_6-zaman-kazandıran-ipuçları","6. Zaman kazandıran ipuçları",[15,1058,1059],{},"Sık yazdığınız komutlar için alias tanımlayın:",[46,1061,1063],{"className":48,"code":1062,"language":50,"meta":51,"style":51},"git config --global alias.st status\ngit config --global alias.co checkout\ngit config --global alias.lg \"log --oneline --graph --all\"\n# Artık: git st, git lg\n",[19,1064,1065,1079,1093,1111],{"__ignoreMap":51},[55,1066,1067,1069,1071,1073,1076],{"class":57,"line":58},[55,1068,62],{"class":61},[55,1070,66],{"class":65},[55,1072,69],{"class":65},[55,1074,1075],{"class":65}," alias.st",[55,1077,1078],{"class":65}," status\n",[55,1080,1081,1083,1085,1087,1090],{"class":57,"line":85},[55,1082,62],{"class":61},[55,1084,66],{"class":65},[55,1086,69],{"class":65},[55,1088,1089],{"class":65}," alias.co",[55,1091,1092],{"class":65}," checkout\n",[55,1094,1095,1097,1099,1101,1104,1106,1109],{"class":57,"line":104},[55,1096,62],{"class":61},[55,1098,66],{"class":65},[55,1100,69],{"class":65},[55,1102,1103],{"class":65}," alias.lg",[55,1105,76],{"class":75},[55,1107,1108],{"class":65},"log --oneline --graph --all",[55,1110,82],{"class":75},[55,1112,1113],{"class":57,"line":119},[55,1114,1115],{"class":129},"# Artık: git st, git lg\n",[15,1117,1118],{},"Birkaç küçük alışkanlık da büyük fark yaratır:",[1120,1121,1122,1140,1143,1150,1156],"ul",{},[1123,1124,1125,1128,1129,1132,1133,1132,1136,1139],"li",{},[19,1126,1127],{},".gitignore"," dosyasını projenin ilk commit'inde ekleyin (",[19,1130,1131],{},"target\u002F",", ",[19,1134,1135],{},"*.class",[19,1137,1138],{},".idea\u002F"," gibi).",[1123,1141,1142],{},"Commit mesajlarını emir kipiyle ve kısa yazın: \"Login validasyonunu ekle\".",[1123,1144,1145,1146,1149],{},"Hatanın hangi commit'le geldiğini bulmak için ",[19,1147,1148],{},"git bisect"," ile ikili arama yapın.",[1123,1151,1152,1153,917],{},"Belirli bir commit'i başka branch'e taşımak için ",[19,1154,1155],{},"git cherry-pick \u003Ccommit>",[1123,1157,1158,1159,1162,1163,672],{},"Sürümleri etiketlemek için ",[19,1160,1161],{},"git tag -a v1.0 -m \"İlk sürüm\""," ve ",[19,1164,1165],{},"git push --tags",[10,1167,1169],{"id":1168},"sonuç","Sonuç",[15,1171,1172,1173,1162,1175,1177,1178,1132,1180,1162,1182,1184],{},"Bu komutların çoğunu ilk haftada ezberleyeceksiniz; ",[19,1174,1011],{},[19,1176,25],{}," gibi kurtarıcılarıysa ihtiyaç anında hatırlamak için bu sayfaya döneceksiniz. En iyi pratik, risksiz bir deneme reposu açıp ",[19,1179,21],{},[19,1181,644],{},[19,1183,923],{}," komutlarını orada kırarak öğrenmektir.",[1186,1187,1188],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":51,"searchDepth":85,"depth":85,"links":1190},[1191,1192,1193,1194,1195,1196,1197,1198],{"id":12,"depth":85,"text":13},{"id":40,"depth":85,"text":41},{"id":186,"depth":85,"text":187},{"id":432,"depth":85,"text":433},{"id":675,"depth":85,"text":676},{"id":839,"depth":85,"text":840},{"id":1055,"depth":85,"text":1056},{"id":1168,"depth":85,"text":1169},"2026-10-09","Günlük işin yaklaşık 20 komutla döndüğü Git'in temel komutları — kullanım sırasıyla, örnekleriyle.","md",{},"\u002Ftr\u002Fblog\u002Fgit-commands-every-developer-should-know",{"title":5,"description":1200},"tr\u002Fblog\u002Fgit-commands-every-developer-should-know",[62,1207],"rehber","\u002Fen\u002Fblog\u002Fgit-commands-every-developer-should-know","ToEfL63Wnt_1S1oGz57CqihUwfETOe6nqRCddrC104A",1792353222406]