[{"data":1,"prerenderedAt":1636},["ShallowReactive",2],{"blog-posts-tr-4":3},[4,1211,1331,1380],{"id":5,"title":6,"body":7,"date":1200,"description":1201,"extension":1202,"meta":1203,"navigation":231,"path":1204,"seo":1205,"stem":1206,"tags":1207,"translation":1209,"__hash__":1210},"pages_tr\u002Ftr\u002Fblog\u002Fgit-commands-every-developer-should-know.md","Her Geliştiricinin Bilmesi Gereken Git Komutları",{"type":8,"value":9,"toc":1190},"minimark",[10,15,28,39,43,46,132,135,185,189,200,329,340,431,435,441,539,542,603,652,655,674,678,691,828,838,842,845,908,919,926,1007,1018,1054,1058,1061,1117,1120,1167,1171,1186],[11,12,14],"h2",{"id":13},"giriş","Giriş",[16,17,18,19,23,24,27],"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, ",[20,21,22],"code",{},"reset"," ile ",[20,25,26],{},"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.",[16,29,30,31,34,35,38],{},"Örneklerde ",[20,32,33],{},"main"," ana branch, ",[20,36,37],{},"origin"," ise uzak repo adı olarak kullanılıyor.",[11,40,42],{"id":41},"_1-kurulum-ve-yapılandırma","1. Kurulum ve yapılandırma",[16,44,45],{},"Git'i ilk kurduğunuzda kimliğinizi bir kez tanıtmanız yeterli; bu bilgiler her commit'e yazılır.",[47,48,53],"pre",{"className":49,"code":50,"language":51,"meta":52,"style":52},"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","",[20,54,55,84,103,118],{"__ignoreMap":52},[56,57,60,64,68,71,74,78,81],"span",{"class":58,"line":59},"line",1,[56,61,63],{"class":62},"sBMFI","git",[56,65,67],{"class":66},"sfazB"," config",[56,69,70],{"class":66}," --global",[56,72,73],{"class":66}," user.name",[56,75,77],{"class":76},"sMK4o"," \"",[56,79,80],{"class":66},"Ad Soyad",[56,82,83],{"class":76},"\"\n",[56,85,87,89,91,93,96,98,101],{"class":58,"line":86},2,[56,88,63],{"class":62},[56,90,67],{"class":66},[56,92,70],{"class":66},[56,94,95],{"class":66}," user.email",[56,97,77],{"class":76},[56,99,100],{"class":66},"ad@ornek.com",[56,102,83],{"class":76},[56,104,106,108,110,112,115],{"class":58,"line":105},3,[56,107,63],{"class":62},[56,109,67],{"class":66},[56,111,70],{"class":66},[56,113,114],{"class":66}," init.defaultBranch",[56,116,117],{"class":66}," main\n",[56,119,121,123,125,128],{"class":58,"line":120},4,[56,122,63],{"class":62},[56,124,67],{"class":66},[56,126,127],{"class":66}," --list",[56,129,131],{"class":130},"sHwdD","          # tüm ayarları göster\n",[16,133,134],{},"Yeni bir proje başlatmak ya da var olan bir repoyu indirmek için:",[47,136,138],{"className":49,"code":137,"language":51,"meta":52,"style":52},"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",[20,139,140,150,160],{"__ignoreMap":52},[56,141,142,144,147],{"class":58,"line":59},[56,143,63],{"class":62},[56,145,146],{"class":66}," init",[56,148,149],{"class":130},"                                   # bulunduğun klasörü repo yap\n",[56,151,152,154,157],{"class":58,"line":86},[56,153,63],{"class":62},[56,155,156],{"class":66}," clone",[56,158,159],{"class":66}," https:\u002F\u002Fgithub.com\u002Fkullanici\u002Fproje.git\n",[56,161,162,164,166,169,172,176,179,182],{"class":58,"line":105},[56,163,63],{"class":62},[56,165,156],{"class":66},[56,167,168],{"class":76}," \u003C",[56,170,171],{"class":66},"ur",[56,173,175],{"class":174},"sTEyZ","l",[56,177,178],{"class":76},">",[56,180,181],{"class":66}," yeni-klasor-adi",[56,183,184],{"class":130},"            # farklı klasöre klonla\n",[11,186,188],{"id":187},"_2-günlük-iş-akışı","2. Günlük iş akışı",[16,190,191,192,195,196,199],{},"Değişiklikler üç aşamadan geçer: çalışma dizini → staging alanı (",[20,193,194],{},"add",") → repo geçmişi (",[20,197,198],{},"commit",").",[47,201,203],{"className":49,"code":202,"language":51,"meta":52,"style":52},"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",[20,204,205,215,227,233,246,259,272,277,295,316],{"__ignoreMap":52},[56,206,207,209,212],{"class":58,"line":59},[56,208,63],{"class":62},[56,210,211],{"class":66}," status",[56,213,214],{"class":130},"                 # neler değişti, neler stage'de\n",[56,216,217,219,221,224],{"class":58,"line":86},[56,218,63],{"class":62},[56,220,211],{"class":66},[56,222,223],{"class":66}," -s",[56,225,226],{"class":130},"              # kısa format\n",[56,228,229],{"class":58,"line":105},[56,230,232],{"emptyLinePlaceholder":231},true,"\n",[56,234,235,237,240,243],{"class":58,"line":120},[56,236,63],{"class":62},[56,238,239],{"class":66}," add",[56,241,242],{"class":66}," dosya.java",[56,244,245],{"class":130},"         # tek dosyayı stage'e al\n",[56,247,249,251,253,256],{"class":58,"line":248},5,[56,250,63],{"class":62},[56,252,239],{"class":66},[56,254,255],{"class":66}," .",[56,257,258],{"class":130},"                  # tüm değişiklikleri al\n",[56,260,262,264,266,269],{"class":58,"line":261},6,[56,263,63],{"class":62},[56,265,239],{"class":66},[56,267,268],{"class":66}," -p",[56,270,271],{"class":130},"                 # değişiklikleri parça parça seçerek al\n",[56,273,275],{"class":58,"line":274},7,[56,276,232],{"emptyLinePlaceholder":231},[56,278,280,282,285,288,290,293],{"class":58,"line":279},8,[56,281,63],{"class":62},[56,283,284],{"class":66}," commit",[56,286,287],{"class":66}," -m",[56,289,77],{"class":76},[56,291,292],{"class":66},"Login validasyonu eklendi",[56,294,83],{"class":76},[56,296,298,300,302,305,307,310,313],{"class":58,"line":297},9,[56,299,63],{"class":62},[56,301,284],{"class":66},[56,303,304],{"class":66}," -am",[56,306,77],{"class":76},[56,308,309],{"class":66},"Mesaj",[56,311,312],{"class":76},"\"",[56,314,315],{"class":130},"     # takip edilen dosyaları add + commit\n",[56,317,319,321,323,326],{"class":58,"line":318},10,[56,320,63],{"class":62},[56,322,284],{"class":66},[56,324,325],{"class":66}," --amend",[56,327,328],{"class":130},"         # son commit'i düzelt (push etmeden önce!)\n",[16,330,331,332,335,336,339],{},"Neyin değiştiğini görmek için ",[20,333,334],{},"diff",", geçmişe bakmak için ",[20,337,338],{},"log"," kullanılır:",[47,341,343],{"className":49,"code":342,"language":51,"meta":52,"style":52},"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",[20,344,345,355,367,386,399,419],{"__ignoreMap":52},[56,346,347,349,352],{"class":58,"line":59},[56,348,63],{"class":62},[56,350,351],{"class":66}," diff",[56,353,354],{"class":130},"                   # stage'e alınmamış farklar\n",[56,356,357,359,361,364],{"class":58,"line":86},[56,358,63],{"class":62},[56,360,351],{"class":66},[56,362,363],{"class":66}," --staged",[56,365,366],{"class":130},"          # commit'lenecek farklar\n",[56,368,369,371,374,377,380,383],{"class":58,"line":105},[56,370,63],{"class":62},[56,372,373],{"class":66}," log",[56,375,376],{"class":66}," --oneline",[56,378,379],{"class":66}," --graph",[56,381,382],{"class":66}," --all",[56,384,385],{"class":130},"   # okunaklı branch geçmişi\n",[56,387,388,390,392,394,396],{"class":58,"line":120},[56,389,63],{"class":62},[56,391,373],{"class":66},[56,393,268],{"class":66},[56,395,242],{"class":66},[56,397,398],{"class":130},"      # bir dosyanın değişim geçmişi\n",[56,400,401,403,406,408,411,414,416],{"class":58,"line":248},[56,402,63],{"class":62},[56,404,405],{"class":66}," show",[56,407,168],{"class":76},[56,409,410],{"class":66},"commi",[56,412,413],{"class":174},"t",[56,415,178],{"class":76},[56,417,418],{"class":130},"          # tek commit'in detayı\n",[56,420,421,423,426,428],{"class":58,"line":261},[56,422,63],{"class":62},[56,424,425],{"class":66}," blame",[56,427,242],{"class":66},[56,429,430],{"class":130},"       # hangi satırı kim değiştirdi\n",[11,432,434],{"id":433},"_3-branch-işlemleri","3. Branch işlemleri",[16,436,437,438,440],{},"Her özellik veya hata düzeltmesi için ayrı bir branch açmak, ",[20,439,33],{},"'i temiz tutmanın en kolay yoludur.",[47,442,444],{"className":49,"code":443,"language":51,"meta":52,"style":52},"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",[20,445,446,456,468,484,496,511,525],{"__ignoreMap":52},[56,447,448,450,453],{"class":58,"line":59},[56,449,63],{"class":62},[56,451,452],{"class":66}," branch",[56,454,455],{"class":130},"                 # yerel branch'ler\n",[56,457,458,460,462,465],{"class":58,"line":86},[56,459,63],{"class":62},[56,461,452],{"class":66},[56,463,464],{"class":66}," -a",[56,466,467],{"class":130},"              # uzak branch'ler dahil\n",[56,469,470,472,475,478,481],{"class":58,"line":105},[56,471,63],{"class":62},[56,473,474],{"class":66}," switch",[56,476,477],{"class":66}," -c",[56,479,480],{"class":66}," feature\u002Flogin",[56,482,483],{"class":130},"     # yeni branch aç ve geç\n",[56,485,486,488,490,493],{"class":58,"line":120},[56,487,63],{"class":62},[56,489,474],{"class":66},[56,491,492],{"class":66}," main",[56,494,495],{"class":130},"                 # branch değiştir\n",[56,497,498,500,503,506,508],{"class":58,"line":248},[56,499,63],{"class":62},[56,501,502],{"class":66}," checkout",[56,504,505],{"class":66}," -b",[56,507,480],{"class":66},[56,509,510],{"class":130},"   # eski sözdizimi, aynı iş\n",[56,512,513,515,517,520,522],{"class":58,"line":261},[56,514,63],{"class":62},[56,516,452],{"class":66},[56,518,519],{"class":66}," -d",[56,521,480],{"class":66},[56,523,524],{"class":130},"     # birleşmiş branch'i sil\n",[56,526,527,529,531,534,536],{"class":58,"line":274},[56,528,63],{"class":62},[56,530,452],{"class":66},[56,532,533],{"class":66}," -D",[56,535,480],{"class":66},[56,537,538],{"class":130},"     # zorla sil\n",[16,540,541],{},"Branch'leri birleştirmenin iki yolu var:",[47,543,545],{"className":49,"code":544,"language":51,"meta":52,"style":52},"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",[20,546,547,555,567,576,588],{"__ignoreMap":52},[56,548,549,551,553],{"class":58,"line":59},[56,550,63],{"class":62},[56,552,474],{"class":66},[56,554,117],{"class":66},[56,556,557,559,562,564],{"class":58,"line":86},[56,558,63],{"class":62},[56,560,561],{"class":66}," merge",[56,563,480],{"class":66},[56,565,566],{"class":130},"    # merge commit ile birleştir\n",[56,568,569,571,573],{"class":58,"line":105},[56,570,63],{"class":62},[56,572,474],{"class":66},[56,574,575],{"class":66}," feature\u002Flogin\n",[56,577,578,580,583,585],{"class":58,"line":120},[56,579,63],{"class":62},[56,581,582],{"class":66}," rebase",[56,584,492],{"class":66},[56,586,587],{"class":130},"            # commit'leri main'in ucuna taşı\n",[56,589,590,592,594,597,600],{"class":58,"line":248},[56,591,63],{"class":62},[56,593,582],{"class":66},[56,595,596],{"class":66}," -i",[56,598,599],{"class":66}," HEAD~3",[56,601,602],{"class":130},"       # son 3 commit'i düzenle\u002Fbirleştir (squash)\n",[604,605,606,622],"table",{},[607,608,609],"thead",{},[610,611,612,616,619],"tr",{},[613,614,615],"th",{},"Komut",[613,617,618],{},"Ne yapar",[613,620,621],{},"Ne zaman",[623,624,625,639],"tbody",{},[610,626,627,633,636],{},[628,629,630],"td",{},[20,631,632],{},"merge",[628,634,635],{},"Geçmişi korur, merge commit ekler",[628,637,638],{},"Paylaşılan branch'lerde",[610,640,641,646,649],{},[628,642,643],{},[20,644,645],{},"rebase",[628,647,648],{},"Geçmişi doğrusal hale getirir",[628,650,651],{},"Henüz push edilmemiş yerel branch'lerde",[16,653,654],{},"Altın kural: başkalarının da kullandığı, push edilmiş bir branch'i rebase etmeyin.",[16,656,657,658,661,662,665,666,669,670,673],{},"Çakışma (conflict) olursa dosyaları düzeltip ",[20,659,660],{},"git add"," yapın, ardından ",[20,663,664],{},"git merge --continue"," veya ",[20,667,668],{},"git rebase --continue"," ile devam edin; vazgeçmek için ",[20,671,672],{},"--abort",".",[11,675,677],{"id":676},"_4-uzak-repo-ile-çalışma","4. Uzak repo ile çalışma",[16,679,680,683,684,687,688,690],{},[20,681,682],{},"fetch"," sadece indirir, ",[20,685,686],{},"pull"," indirip birleştirir; emin değilseniz önce ",[20,689,682],{}," yapıp neyin geldiğine bakın.",[47,692,694],{"className":49,"code":693,"language":51,"meta":52,"style":52},"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",[20,695,696,709,731,735,747,757,769,773,783,799,811],{"__ignoreMap":52},[56,697,698,700,703,706],{"class":58,"line":59},[56,699,63],{"class":62},[56,701,702],{"class":66}," remote",[56,704,705],{"class":66}," -v",[56,707,708],{"class":130},"                          # bağlı uzak repolar\n",[56,710,711,713,715,717,720,722,724,726,728],{"class":58,"line":86},[56,712,63],{"class":62},[56,714,702],{"class":66},[56,716,239],{"class":66},[56,718,719],{"class":66}," origin",[56,721,168],{"class":76},[56,723,171],{"class":66},[56,725,175],{"class":174},[56,727,178],{"class":76},[56,729,730],{"class":130},"            # uzak repo ekle\n",[56,732,733],{"class":58,"line":105},[56,734,232],{"emptyLinePlaceholder":231},[56,736,737,739,742,744],{"class":58,"line":120},[56,738,63],{"class":62},[56,740,741],{"class":66}," fetch",[56,743,719],{"class":66},[56,745,746],{"class":130},"                       # değişiklikleri indir, birleştirme\n",[56,748,749,751,754],{"class":58,"line":248},[56,750,63],{"class":62},[56,752,753],{"class":66}," pull",[56,755,756],{"class":130},"                               # fetch + merge\n",[56,758,759,761,763,766],{"class":58,"line":261},[56,760,63],{"class":62},[56,762,753],{"class":66},[56,764,765],{"class":66}," --rebase",[56,767,768],{"class":130},"                      # fetch + rebase (daha temiz geçmiş)\n",[56,770,771],{"class":58,"line":274},[56,772,232],{"emptyLinePlaceholder":231},[56,774,775,777,780],{"class":58,"line":279},[56,776,63],{"class":62},[56,778,779],{"class":66}," push",[56,781,782],{"class":130},"                               # mevcut branch'i gönder\n",[56,784,785,787,789,792,794,796],{"class":58,"line":297},[56,786,63],{"class":62},[56,788,779],{"class":66},[56,790,791],{"class":66}," -u",[56,793,719],{"class":66},[56,795,480],{"class":66},[56,797,798],{"class":130},"       # ilk push, upstream'i ayarla\n",[56,800,801,803,805,808],{"class":58,"line":318},[56,802,63],{"class":62},[56,804,779],{"class":66},[56,806,807],{"class":66}," --force-with-lease",[56,809,810],{"class":130},"            # rebase sonrası güvenli zorla push\n",[56,812,814,816,818,820,823,825],{"class":58,"line":813},11,[56,815,63],{"class":62},[56,817,779],{"class":66},[56,819,719],{"class":66},[56,821,822],{"class":66}," --delete",[56,824,480],{"class":66},[56,826,827],{"class":130}," # uzak branch'i sil\n",[16,829,830,833,834,837],{},[20,831,832],{},"--force"," yerine her zaman ",[20,835,836],{},"--force-with-lease"," kullanın: bu, siz son baktığınızdan beri başkası push ettiyse işlemi durdurur.",[11,839,841],{"id":840},"_5-hataları-geri-almak","5. Hataları geri almak",[16,843,844],{},"Neyi geri almak istediğinize göre doğru komut değişir:",[604,846,847,856],{},[607,848,849],{},[610,850,851,854],{},[613,852,853],{},"Durum",[613,855,615],{},[623,857,858,868,878,888,898],{},[610,859,860,863],{},[628,861,862],{},"Dosyadaki kaydedilmemiş değişikliği at",[628,864,865],{},[20,866,867],{},"git restore dosya.java",[610,869,870,873],{},[628,871,872],{},"Dosyayı stage'den çıkar",[628,874,875],{},[20,876,877],{},"git restore --staged dosya.java",[610,879,880,883],{},[628,881,882],{},"Son commit'i geri al, değişiklikler kalsın",[628,884,885],{},[20,886,887],{},"git reset --soft HEAD~1",[610,889,890,893],{},[628,891,892],{},"Son commit'i ve değişiklikleri tamamen sil",[628,894,895],{},[20,896,897],{},"git reset --hard HEAD~1",[610,899,900,903],{},[628,901,902],{},"Push edilmiş commit'i güvenle geri al",[628,904,905],{},[20,906,907],{},"git revert \u003Ccommit>",[16,909,910,912,913,915,916,918],{},[20,911,22],{}," geçmişi yeniden yazar, ",[20,914,26],{}," ise geri alan yeni bir commit ekler; paylaşılan branch'lerde her zaman ",[20,917,26],{}," kullanın.",[16,920,921,922,925],{},"Yarım kalan işi kenara koymak için ",[20,923,924],{},"stash",":",[47,927,929],{"className":49,"code":928,"language":51,"meta":52,"style":52},"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",[20,930,931,941,961,973,985],{"__ignoreMap":52},[56,932,933,935,938],{"class":58,"line":59},[56,934,63],{"class":62},[56,936,937],{"class":66}," stash",[56,939,940],{"class":130},"                      # değişiklikleri sakla\n",[56,942,943,945,947,949,951,953,956,958],{"class":58,"line":86},[56,944,63],{"class":62},[56,946,937],{"class":66},[56,948,779],{"class":66},[56,950,287],{"class":66},[56,952,77],{"class":76},[56,954,955],{"class":66},"yarım login",[56,957,312],{"class":76},[56,959,960],{"class":130},"   # isimle sakla\n",[56,962,963,965,967,970],{"class":58,"line":105},[56,964,63],{"class":62},[56,966,937],{"class":66},[56,968,969],{"class":66}," list",[56,971,972],{"class":130},"                 # saklananları listele\n",[56,974,975,977,979,982],{"class":58,"line":120},[56,976,63],{"class":62},[56,978,937],{"class":66},[56,980,981],{"class":66}," pop",[56,983,984],{"class":130},"                  # son stash'i geri getir ve sil\n",[56,986,987,989,991,994,997,1001,1004],{"class":58,"line":248},[56,988,63],{"class":62},[56,990,937],{"class":66},[56,992,993],{"class":66}," apply",[56,995,996],{"class":66}," stash@{",[56,998,1000],{"class":999},"sbssI","1",[56,1002,1003],{"class":66},"}",[56,1005,1006],{"class":130},"      # belirli stash'i uygula\n",[16,1008,1009,1010,1013,1014,1017],{},"Son çare ",[20,1011,1012],{},"reflog","'dur: ",[20,1015,1016],{},"reset --hard"," sonrası \"kaybolan\" commit'ler bile burada görünür.",[47,1019,1021],{"className":49,"code":1020,"language":51,"meta":52,"style":52},"git reflog                     # HEAD'in gittiği her yer\ngit reset --hard HEAD@{2}      # o noktaya geri dön\n",[20,1022,1023,1033],{"__ignoreMap":52},[56,1024,1025,1027,1030],{"class":58,"line":59},[56,1026,63],{"class":62},[56,1028,1029],{"class":66}," reflog",[56,1031,1032],{"class":130},"                     # HEAD'in gittiği her yer\n",[56,1034,1035,1037,1040,1043,1046,1049,1051],{"class":58,"line":86},[56,1036,63],{"class":62},[56,1038,1039],{"class":66}," reset",[56,1041,1042],{"class":66}," --hard",[56,1044,1045],{"class":66}," HEAD@{",[56,1047,1048],{"class":999},"2",[56,1050,1003],{"class":66},[56,1052,1053],{"class":130},"      # o noktaya geri dön\n",[11,1055,1057],{"id":1056},"_6-zaman-kazandıran-ipuçları","6. Zaman kazandıran ipuçları",[16,1059,1060],{},"Sık yazdığınız komutlar için alias tanımlayın:",[47,1062,1064],{"className":49,"code":1063,"language":51,"meta":52,"style":52},"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",[20,1065,1066,1080,1094,1112],{"__ignoreMap":52},[56,1067,1068,1070,1072,1074,1077],{"class":58,"line":59},[56,1069,63],{"class":62},[56,1071,67],{"class":66},[56,1073,70],{"class":66},[56,1075,1076],{"class":66}," alias.st",[56,1078,1079],{"class":66}," status\n",[56,1081,1082,1084,1086,1088,1091],{"class":58,"line":86},[56,1083,63],{"class":62},[56,1085,67],{"class":66},[56,1087,70],{"class":66},[56,1089,1090],{"class":66}," alias.co",[56,1092,1093],{"class":66}," checkout\n",[56,1095,1096,1098,1100,1102,1105,1107,1110],{"class":58,"line":105},[56,1097,63],{"class":62},[56,1099,67],{"class":66},[56,1101,70],{"class":66},[56,1103,1104],{"class":66}," alias.lg",[56,1106,77],{"class":76},[56,1108,1109],{"class":66},"log --oneline --graph --all",[56,1111,83],{"class":76},[56,1113,1114],{"class":58,"line":120},[56,1115,1116],{"class":130},"# Artık: git st, git lg\n",[16,1118,1119],{},"Birkaç küçük alışkanlık da büyük fark yaratır:",[1121,1122,1123,1141,1144,1151,1157],"ul",{},[1124,1125,1126,1129,1130,1133,1134,1133,1137,1140],"li",{},[20,1127,1128],{},".gitignore"," dosyasını projenin ilk commit'inde ekleyin (",[20,1131,1132],{},"target\u002F",", ",[20,1135,1136],{},"*.class",[20,1138,1139],{},".idea\u002F"," gibi).",[1124,1142,1143],{},"Commit mesajlarını emir kipiyle ve kısa yazın: \"Login validasyonunu ekle\".",[1124,1145,1146,1147,1150],{},"Hatanın hangi commit'le geldiğini bulmak için ",[20,1148,1149],{},"git bisect"," ile ikili arama yapın.",[1124,1152,1153,1154,918],{},"Belirli bir commit'i başka branch'e taşımak için ",[20,1155,1156],{},"git cherry-pick \u003Ccommit>",[1124,1158,1159,1160,1163,1164,673],{},"Sürümleri etiketlemek için ",[20,1161,1162],{},"git tag -a v1.0 -m \"İlk sürüm\""," ve ",[20,1165,1166],{},"git push --tags",[11,1168,1170],{"id":1169},"sonuç","Sonuç",[16,1172,1173,1174,1163,1176,1178,1179,1133,1181,1163,1183,1185],{},"Bu komutların çoğunu ilk haftada ezberleyeceksiniz; ",[20,1175,1012],{},[20,1177,26],{}," 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 ",[20,1180,22],{},[20,1182,645],{},[20,1184,924],{}," komutlarını orada kırarak öğrenmektir.",[1187,1188,1189],"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":52,"searchDepth":86,"depth":86,"links":1191},[1192,1193,1194,1195,1196,1197,1198,1199],{"id":13,"depth":86,"text":14},{"id":41,"depth":86,"text":42},{"id":187,"depth":86,"text":188},{"id":433,"depth":86,"text":434},{"id":676,"depth":86,"text":677},{"id":840,"depth":86,"text":841},{"id":1056,"depth":86,"text":1057},{"id":1169,"depth":86,"text":1170},"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":6,"description":1201},"tr\u002Fblog\u002Fgit-commands-every-developer-should-know",[63,1208],"rehber","\u002Fen\u002Fblog\u002Fgit-commands-every-developer-should-know","ToEfL63Wnt_1S1oGz57CqihUwfETOe6nqRCddrC104A",{"id":1212,"title":1213,"body":1214,"date":1321,"description":1322,"extension":1202,"meta":1323,"navigation":231,"path":1324,"seo":1325,"stem":1326,"tags":1327,"translation":1329,"__hash__":1330},"pages_tr\u002Ftr\u002Fblog\u002Fcreate-a-web-project-with-tailwind-css.md","Tailwind CSS ile Web Projesi Oluşturmak",{"type":8,"value":1215,"toc":1312},[1216,1220,1228,1232,1238,1241,1245,1248,1254,1258,1261,1267,1271,1274,1280,1284,1287,1293,1297,1303,1306],[11,1217,1219],{"id":1218},"proje-klasörü-ve-nodejs-aktivasyonu","Proje klasörü ve Node.js aktivasyonu",[47,1221,1226],{"className":1222,"code":1224,"language":1225},[1223],"language-text","mkdir tailwind-demo\ncd tailwind-demo\nnpm init\n","text",[20,1227,1224],{"__ignoreMap":52},[11,1229,1231],{"id":1230},"tailwind-cssi-kur","Tailwind CSS'i kur",[47,1233,1236],{"className":1234,"code":1235,"language":1225},[1223],"npm install -D tailwindcss\nnpx tailwindcss init\n",[20,1237,1235],{"__ignoreMap":52},[16,1239,1240],{},"Bu adımla tailwind için dev dependency ve tailwind.config.css dosyası oluşacaktır.",[11,1242,1244],{"id":1243},"pathi-ayarla","Path'i ayarla",[16,1246,1247],{},"Dizini belirtmek için content alanını aşağıdaki gibi değiştir.",[47,1249,1252],{"className":1250,"code":1251,"language":1225},[1223],"content: [\".\u002Fsrc\u002F**\u002F*.{html,js}\"],\n",[20,1253,1251],{"__ignoreMap":52},[11,1255,1257],{"id":1256},"tailwind-directivelerini-ekle","Tailwind directive'lerini ekle",[16,1259,1260],{},"src klasörü ve input.css dosyasını oluştur. src\u002Finput.css dosyan olacak; sonra aşağıdaki satırları ekle.",[47,1262,1265],{"className":1263,"code":1264,"language":1225},[1223],"@tailwind base;\n@tailwind components;\n@tailwind utilities;\n",[20,1266,1264],{"__ignoreMap":52},[11,1268,1270],{"id":1269},"tailwind-css-watch-aracını-packagejsona-ekle","Tailwind CSS Watch aracını package.json'a ekle",[16,1272,1273],{},"Bu watch script'ini package.json dosyasındaki scripts bölümüne ekle. Projeyi daha sonra bu komutla başlatacağız.",[47,1275,1278],{"className":1276,"code":1277,"language":1225},[1223],"\"watch\": \"npx tailwindcss -i .\u002Fsrc\u002Finput.css -o .\u002Fdist\u002Foutput.css --watch\"\n",[20,1279,1277],{"__ignoreMap":52},[11,1281,1283],{"id":1282},"test-amaçlı-bir-html-sayfası-oluştur","Test amaçlı bir HTML sayfası oluştur",[16,1285,1286],{},"src klasörü altında index.html dosyası oluştur ve aşağıdaki satırları ekle.",[47,1288,1291],{"className":1289,"code":1290,"language":1225},[1223],"\u003C!doctype html>\n\u003Chtml>\n\u003Chead>\n  \u003Cmeta charset=\"UTF-8\">\n  \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  \u003Clink href=\"\u002Fdist\u002Foutput.css\" rel=\"stylesheet\">\n\u003C\u002Fhead>\n\u003Cbody>\n  \u003Ch1 class=\"text-3xl font-bold underline\">\n    Hello world!\n  \u003C\u002Fh1>\n\u003C\u002Fbody>\n\u003C\u002Fhtml>\n",[20,1292,1290],{"__ignoreMap":52},[11,1294,1296],{"id":1295},"projeyi-başlat","Projeyi başlat",[47,1298,1301],{"className":1299,"code":1300,"language":1225},[1223],"npm run watch\n",[20,1302,1300],{"__ignoreMap":52},[16,1304,1305],{},"index.html dosyasını LiveServer ya da benzeri bir test aracıyla tarayıcında aç. Tailwind destekli sayfayı göreceksin. Afiyet olsun.",[47,1307,1310],{"className":1308,"code":1309,"language":1225},[1223],"http:\u002F\u002F127.0.0.1:5500\u002Fsrc\u002Findex.html\n",[20,1311,1309],{"__ignoreMap":52},{"title":52,"searchDepth":86,"depth":86,"links":1313},[1314,1315,1316,1317,1318,1319,1320],{"id":1218,"depth":86,"text":1219},{"id":1230,"depth":86,"text":1231},{"id":1243,"depth":86,"text":1244},{"id":1256,"depth":86,"text":1257},{"id":1269,"depth":86,"text":1270},{"id":1282,"depth":86,"text":1283},{"id":1295,"depth":86,"text":1296},"2022-12-18","Tailwind CSS ile web projesi kurmak: proje oluşturma, config yolları, directive'ler ve CSS derleme.",{},"\u002Ftr\u002Fblog\u002Fcreate-a-web-project-with-tailwind-css",{"title":1213,"description":1322},"tr\u002Fblog\u002Fcreate-a-web-project-with-tailwind-css",[1328],"application servers","\u002Fen\u002Fblog\u002Fcreate-a-web-project-with-tailwind-css","s6yU-dbOuJjii-yPT06nTsPWfalbsWY0TbGmXqoe3Gk",{"id":1332,"title":1333,"body":1334,"date":1371,"description":1372,"extension":1202,"meta":1373,"navigation":231,"path":1374,"seo":1375,"stem":1376,"tags":1377,"translation":1378,"__hash__":1379},"pages_tr\u002Ftr\u002Fblog\u002Finstall-go-on-centos.md","CentOS Üzerine Go Kurmak",{"type":8,"value":1335,"toc":1366},[1336,1340,1346,1350,1356,1360],[11,1337,1339],{"id":1338},"versiyonu-kontrol-et","Versiyonu Kontrol Et",[47,1341,1344],{"className":1342,"code":1343,"language":1225},[1223],"go version\n",[20,1345,1343],{"__ignoreMap":52},[11,1347,1349],{"id":1348},"i̇ndir-ve-arşivi-aç","İndir ve Arşivi Aç",[47,1351,1354],{"className":1352,"code":1353,"language":1225},[1223],"wget https:\u002F\u002Fgo.dev\u002Fdl\u002Fgo1.18.5.linux-amd64.tar.gz\n\ntar -C \u002Fusr\u002Flocal -zxvf go1.18.5.linux-amd64.tar.gz\n",[20,1355,1353],{"__ignoreMap":52},[11,1357,1359],{"id":1358},"ortam-değişkenine-ekle-ve-etkinleştir","Ortam Değişkenine Ekle ve Etkinleştir",[47,1361,1364],{"className":1362,"code":1363,"language":1225},[1223],"vi \u002Fetc\u002Fprofile\n\nexport PATH=$PATH:\u002Fusr\u002Flocal\u002Fgo\u002Fbin\n\nsource \u002Fetc\u002Fprofile\n",[20,1365,1363],{"__ignoreMap":52},{"title":52,"searchDepth":86,"depth":86,"links":1367},[1368,1369,1370],{"id":1338,"depth":86,"text":1339},{"id":1348,"depth":86,"text":1349},{"id":1358,"depth":86,"text":1359},"2022-10-31","CentOS üzerine Go kurulumu: indirme, \u002Fusr\u002Flocal altına açma ve PATH ayarı.",{},"\u002Ftr\u002Fblog\u002Finstall-go-on-centos",{"title":1333,"description":1372},"tr\u002Fblog\u002Finstall-go-on-centos",[1328],"\u002Fen\u002Fblog\u002Finstall-go-on-centos","r5qc8FzYekK0Y-s6nLvqxRn321tJFN1Dd_Sj0pLZksE",{"id":1381,"title":1382,"body":1383,"date":1371,"description":1627,"extension":1202,"meta":1628,"navigation":231,"path":1629,"seo":1630,"stem":1631,"tags":1632,"translation":1634,"__hash__":1635},"pages_tr\u002Ftr\u002Fblog\u002Flinux-best-practices.md","Linux Best Practices",{"type":8,"value":1384,"toc":1625},[1385,1391,1409,1414,1441,1446,1466,1471,1503,1508,1535,1540,1552,1557,1566,1571,1584,1589,1622],[16,1386,1387],{},[1388,1389,1390],"strong",{},"CPU",[47,1392,1394],{"className":49,"code":1393,"language":51,"meta":52,"style":52},"lscpu\ncat \u002Fproc\u002Fcpuinfo\n",[20,1395,1396,1401],{"__ignoreMap":52},[56,1397,1398],{"class":58,"line":59},[56,1399,1400],{"class":62},"lscpu\n",[56,1402,1403,1406],{"class":58,"line":86},[56,1404,1405],{"class":62},"cat",[56,1407,1408],{"class":66}," \u002Fproc\u002Fcpuinfo\n",[16,1410,1411],{},[1388,1412,1413],{},"Memory Usage",[47,1415,1417],{"className":49,"code":1416,"language":51,"meta":52,"style":52},"free\ncat \u002Fproc\u002Fmeminfo\ntop\nhtop\n",[20,1418,1419,1424,1431,1436],{"__ignoreMap":52},[56,1420,1421],{"class":58,"line":59},[56,1422,1423],{"class":62},"free\n",[56,1425,1426,1428],{"class":58,"line":86},[56,1427,1405],{"class":62},[56,1429,1430],{"class":66}," \u002Fproc\u002Fmeminfo\n",[56,1432,1433],{"class":58,"line":105},[56,1434,1435],{"class":62},"top\n",[56,1437,1438],{"class":58,"line":120},[56,1439,1440],{"class":62},"htop\n",[16,1442,1443],{},[1388,1444,1445],{},"Disk Usage",[47,1447,1449],{"className":49,"code":1448,"language":51,"meta":52,"style":52},"df -h\ndu -h\n",[20,1450,1451,1459],{"__ignoreMap":52},[56,1452,1453,1456],{"class":58,"line":59},[56,1454,1455],{"class":62},"df",[56,1457,1458],{"class":66}," -h\n",[56,1460,1461,1464],{"class":58,"line":86},[56,1462,1463],{"class":62},"du",[56,1465,1458],{"class":66},[16,1467,1468],{},[1388,1469,1470],{},"OS Check",[47,1472,1474],{"className":49,"code":1473,"language":51,"meta":52,"style":52},"cat \u002Fetc\u002Fos-release\ncat \u002Fetc\u002Fsystem-release\nlsb_release -a\nsw_vers\n",[20,1475,1476,1483,1490,1498],{"__ignoreMap":52},[56,1477,1478,1480],{"class":58,"line":59},[56,1479,1405],{"class":62},[56,1481,1482],{"class":66}," \u002Fetc\u002Fos-release\n",[56,1484,1485,1487],{"class":58,"line":86},[56,1486,1405],{"class":62},[56,1488,1489],{"class":66}," \u002Fetc\u002Fsystem-release\n",[56,1491,1492,1495],{"class":58,"line":105},[56,1493,1494],{"class":62},"lsb_release",[56,1496,1497],{"class":66}," -a\n",[56,1499,1500],{"class":58,"line":120},[56,1501,1502],{"class":62},"sw_vers\n",[16,1504,1505],{},[1388,1506,1507],{},"Users",[47,1509,1511],{"className":49,"code":1510,"language":51,"meta":52,"style":52},"w\nwho\nusers\ncat \u002Fetc\u002Fpasswd\n",[20,1512,1513,1518,1523,1528],{"__ignoreMap":52},[56,1514,1515],{"class":58,"line":59},[56,1516,1517],{"class":62},"w\n",[56,1519,1520],{"class":58,"line":86},[56,1521,1522],{"class":62},"who\n",[56,1524,1525],{"class":58,"line":105},[56,1526,1527],{"class":62},"users\n",[56,1529,1530,1532],{"class":58,"line":120},[56,1531,1405],{"class":62},[56,1533,1534],{"class":66}," \u002Fetc\u002Fpasswd\n",[16,1536,1537],{},[1388,1538,1539],{},"Groups",[47,1541,1543],{"className":49,"code":1542,"language":51,"meta":52,"style":52},"cat \u002Fetc\u002Fgroup\n",[20,1544,1545],{"__ignoreMap":52},[56,1546,1547,1549],{"class":58,"line":59},[56,1548,1405],{"class":62},[56,1550,1551],{"class":66}," \u002Fetc\u002Fgroup\n",[16,1553,1554],{},[1388,1555,1556],{},"Change Password",[47,1558,1560],{"className":49,"code":1559,"language":51,"meta":52,"style":52},"passwd\n",[20,1561,1562],{"__ignoreMap":52},[56,1563,1564],{"class":58,"line":59},[56,1565,1559],{"class":62},[16,1567,1568],{},[1388,1569,1570],{},"Port Check",[47,1572,1574],{"className":49,"code":1573,"language":51,"meta":52,"style":52},"netstat -ant\n",[20,1575,1576],{"__ignoreMap":52},[56,1577,1578,1581],{"class":58,"line":59},[56,1579,1580],{"class":62},"netstat",[56,1582,1583],{"class":66}," -ant\n",[16,1585,1586],{},[1388,1587,1588],{},"Change Directory",[604,1590,1591,1600],{},[607,1592,1593],{},[610,1594,1595,1597],{},[613,1596,615],{},[613,1598,1599],{},"Açıklama",[623,1601,1602,1612],{},[610,1603,1604,1609],{},[628,1605,1606],{},[20,1607,1608],{},"cd \u002Fpath\u002Fto\u002Fyou\u002Fwant\u002Fto\u002Fgo",[628,1610,1611],{},"İstediğin dizine geçer",[610,1613,1614,1619],{},[628,1615,1616],{},[20,1617,1618],{},"cd -",[628,1620,1621],{},"Eski çalıştığın dizine geçer",[1187,1623,1624],{},"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 .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);}",{"title":52,"searchDepth":86,"depth":86,"links":1626},[],"Linux'ta sık kullanılan sistem komutları ve iyi pratikler: CPU, bellek, disk, kullanıcı ve port yönetimi.",{},"\u002Ftr\u002Fblog\u002Flinux-best-practices",{"title":1382,"description":1627},"tr\u002Fblog\u002Flinux-best-practices",[1633],"linux","\u002Fen\u002Fblog\u002Flinux-best-practices","uB2f4yQxUUOs4f9D0PqrQxIfrhrcuMaa_M8lcSM9ecQ",1792353224341]