Git'teki en son yerel taahh├╝tleri nas─▒l geri alabilirim?


Al─▒nan cevaba git


Yanl─▒┼čl─▒kla Yanl─▒┼č dosyalar─▒ Git'e verdim, ancak hen├╝z sunucuya vermeyi zorlamad─▒m.

Bu taahh├╝tleri yerel depodan nas─▒l geri alabilirim?


20172









Cevap say─▒s─▒n─▒ say: 30






Taahh├╝d├╝ geri al ve yinele

 $ git commit -m "Something terribly misguided"             # (1)
$ git reset HEAD~                                          # (2)
<< edit files as necessary >>                              # (3)
$ git add ...                                              # (4)
$ git commit -c ORIG_HEAD                                  # (5)
 
  1. Geri almak istedi─čin ┼čey bu.
  2. Bu, ├žal─▒┼čan a─čac─▒n─▒za hi├žbir ┼čey yapmaz (dosyalar─▒n─▒z─▒n diskteki durumu), ancak taahh├╝d├╝n├╝z├╝ geri al─▒r ve yapt─▒─č─▒n─▒z de─či┼čiklikleri etiketsiz b─▒rak─▒r (bu nedenle, "─░┼člem i├žin kademeli olmayan de─či┼čiklikler" olarak g├Âr├╝neceklerdir git status , bu nedenle yapman─▒z gerekenler taahh├╝t etmeden ├Ânce bunlar─▒ tekrar ekleyin). E─čer varsa sadece istedi─činiz eklemek ├Ânceki daha fazla de─či┼čiklik yapmak veya mesaj taahh├╝t de─či┼čtirmek 1 ┼čunu kullanabilirsiniz git reset --soft HEAD~ gibi olan yerine git reset HEAD~ 2 ancak mevcut de─či┼čikliklerin a┼čamal─▒ b─▒rak─▒r.
  3. ├çal─▒┼čan a─ča├ž dosyalar─▒nda d├╝zeltmeler yap─▒n.
  4. git add Yeni taahh├╝d├╝n├╝ze eklemek istedi─činiz herhangi bir ┼čey.
  5. Eski taahh├╝t mesaj─▒n─▒ tekrar kullanarak de─či┼čiklikleri kabul edin. reset ya┼čl─▒ ba┼č─▒ kopyalad─▒ .git/ORIG_HEAD ; commit ile -c ORIG_HEAD ba┼člang─▒├žta eski itibaren g├╝nl├╝k mesaj kesinle┼čtirme i├žerir ve d├╝zenleme o sizi sa─člayan bir edit├Âr, a├ž─▒lacakt─▒r. Mesaj─▒ d├╝zenlemeniz gerekmiyorsa, -C se├žene─či kullanabilirsiniz .

Ancak, dizine yeni bir de─či┼čiklik commit --amend eklerseniz , kullanman─▒n bunlar─▒ ├Ânceki i┼čleminize ekleyece─čini unutmay─▒n.

Kod zaten sunucunuza g├Ânderildiyse ve tarihin ├╝zerine yazma izniniz (yeniden olu┼čturma) ├Âyleyse:

 git push origin master --force
 

Bu cevaba da bakabilirsiniz:

HEAD ├Ânceki konumuna nas─▒l ta┼č─▒n─▒r? [Ayr─▒lm─▒┼č kafa] & Geri Al taahh├╝tleri

Yukar─▒daki cevap git reflog size, geri d├Ânmek istedi─činiz SHA-1'in ne oldu─čunu bulmak i├žin kullan─▒lanlar─▒ g├Âsterecektir . Bir keresinde yukar─▒da a├ž─▒kland─▒─č─▒ gibi komut dizisini kullanmak istemedi─činiz noktay─▒ buldu─čunuzda.


1 Bununla birlikte, i┼člem mesaj─▒n─▒zda bir hata yapt─▒ysan─▒z, ├Ânceki bir i┼člem i├žin s─▒f─▒rlaman─▒z gerekmedi─čini unutmay─▒n . En kolay se├ženek git reset (o zamandan beri yapt─▒─č─▒n─▒z de─či┼čiklikleri kald─▒rmak i├žin) ve sonra git commit --amend , son i┼člem mesaj─▒ ile ├Ânceden doldurulmu┼č varsay─▒lan i┼člem mesaj─▒ edit├Âr├╝n├╝z├╝ a├žman─▒zd─▒r .

2 HEAD~ ayn─▒d─▒r HEAD~1


21832







Nas─▒l ├žal─▒┼čt─▒─č─▒n─▒ bilmiyorsan─▒z, bir taahh├╝d├╝ geri almak biraz korkutucu. Ama e─čer anlarsan, asl─▒nda inan─▒lmaz derecede kolay.

Diyelim ki, C ba┼č─▒n─▒z ve (F) dosyalar─▒n─▒z─▒n durumu.

    (F)
A-B-C
    ÔćĹ
  master
 

N'ye C'ye ba─čl─▒ kalmay─▒ ve bir daha asla g├Ârmemeyi istiyorsun . Bunu yap:

 git reset --hard HEAD~1
 

Sonu├ž:

  (F)
A-B
  ÔćĹ
master
 

┼×imdi B ba┼č. Kulland─▒─č─▒n─▒z i├žin --hard , dosyalar─▒n─▒z B taahh├╝d├╝ndeki durumuna s─▒f─▒rlan─▒r.

Ah, ama farz edelim ki C bir felaket de─čildi, ama sadece biraz kapal─▒. Taahh├╝d├╝n├╝z├╝ geri almak istiyorsunuz, ancak daha iyi bir taahh├╝tte bulunmadan ├Ânce de─či┼čikliklerinizi bir miktar d├╝zenleme i├žin saklay─▒n . Buradan ba┼člayarak, ba┼č─▒n─▒z olarak C ile:

    (F)
A-B-C
    ÔćĹ
  master
 

Bunu b─▒rakarak yapabilirsiniz --hard :

 git reset HEAD~1
 

Bu durumda sonu├ž:

    (F)
A-B-C
  ÔćĹ
master
 

Her iki durumda da, HEAD en son taahh├╝d├╝n yaln─▒zca bir g├Âstergesidir. A yapt─▒─č─▒n─▒zda git reset HEAD~1 , Git'e HEAD imlecini bir i┼člem geri getirmesini s├Âyleyin. Ancak (kullanmazsan─▒z --hard ) dosyalar─▒n─▒z─▒ olduklar─▒ gibi b─▒rak─▒rs─▒n─▒z. ┼×imdi git status C'ye girdi─činiz de─či┼čiklikleri g├Âsterir. Hi├žbir ┼čey kaybetmediniz!

En hafif dokunu┼č i├žin, taahh├╝d├╝n├╝z├╝https://git.wiki.kernel.org/index.php/WhatIsTheIndex bile kald─▒rabilirsiniz ancak dosyalar─▒n─▒z─▒ ve dizininizi b─▒rak─▒n :

 git reset --soft HEAD~1
 

Bu sadece dosyalar─▒n─▒z─▒ yaln─▒z b─▒rakmakla kalmaz, ayn─▒ zamanda indeksinizi de yaln─▒z b─▒rak─▒r . Bunu yapt─▒─č─▒n─▒zda git status , ayn─▒ dosyalar─▒n daha ├Ânce oldu─ču gibi dizinde oldu─čunu g├Âreceksiniz. Asl─▒nda, bu emirden hemen sonra yapabilirdiniz git commit ve yapt─▒─č─▒n─▒z taahh├╝d├╝ tekrar edersiniz.

Bir ┼čey daha varsay─▒n : ─░lk ├Ârnekte oldu─ču gibi bir taahh├╝d├╝ yok edersiniz , ama sonu├žta buna ihtiyac─▒n─▒z oldu─čunu ke┼čfedersiniz ? Zor ┼čans, de─čil mi?

Hay─▒r, hala geri alman─▒n bir yolu var . Yaz─▒n git reflog ve bir listesini g├Âreceksiniz (k─▒smi) i┼člemek ┼×as sen etraf─▒nda hareket ettik (yani, sa─člamalar─▒n─▒n) siz yok i┼člemek ve bunu bulun.:

 git checkout -b someNewBranchName shaYouDestroyed
 

┼×imdi bu taahh├╝d├╝ tekrar ba┼člatt─▒n─▒z. Taahh├╝tler Git'te yakla┼č─▒k 90 g├╝n boyunca tahrip edilmiyor, bu y├╝zden genellikle geri d├Ân├╝p kurtulmak istemedi─činiz birini kurtarabilirsiniz.


10431







Bu beni anlamak i├žin biraz zaman ald─▒, bu y├╝zden belki bu birine yard─▒mc─▒ olacakt─▒r ...

Son taahh├╝d├╝n├╝z├╝ "geri alman─▒n" iki yolu vard─▒r; bu, taahh├╝d├╝n├╝z├╝ herkese a├ž─▒k yap─▒p yapmamaya ba─čl─▒ olarak (uzak havuzunuza itti)

Yerel bir taahh├╝t nas─▒l geri al─▒n─▒r

Diyelim ki yerel olarak taahh├╝tte bulundum, ancak ┼čimdi bu taahh├╝d├╝ kald─▒rmak istiyorum.

 git log
    commit 101: bad commit    # latest commit, this would be called 'HEAD'
    commit 100: good commit   # second to last commit, this is the one we want
 

Son ├Âncesinde taahh├╝t edilmi┼č ┼čekilde her ┼čeyi geri y├╝klemek i├žin, gerek reset daha ├Ânce i┼člemeye HEAD :

 git reset --soft HEAD^     # use --soft if you want to keep your changes
git reset --hard HEAD^     # use --hard if you don't care about keeping the changes you made
 

┼×imdi git log son taahh├╝d├╝m├╝z├╝n kald─▒r─▒ld─▒─č─▒n─▒ g├Âsterecek.

Bir kamu taahh├╝d├╝n├╝ geri alma

Taahh├╝tlerinizi daha ├Ânce kamuya a├ž─▒klad─▒ysan─▒z, ├Ânceki taahh├╝d├╝n├╝zde (mevcut HEAD) yapt─▒─č─▒n─▒z de─či┼čiklikleri "geri alacak" yeni bir taahh├╝t olu┼čturmak isteyeceksiniz.

 git revert HEAD
 

De─či┼čiklikleriniz ┼čimdi geri al─▒nacak ve taahh├╝t etmeniz i├žin haz─▒r olacakt─▒r:

 git commit -m 'restoring the file I removed by accident'
git log
    commit 102: restoring the file I removed by accident
    commit 101: removing a file we don't need
    commit 100: adding a file that we need
 

Daha fazla bilgi i├žin Git Basics - Undoing Things


2008







─░┼čleri istedi─činiz gibi almak i├žin dosya ekleyin / kald─▒r─▒n:

 git rm classdir
git add sourcedir
 

Ard─▒ndan taahh├╝d├╝ de─či┼čtirin:

 git commit --amend
 

Daha ├Ânceki hatal─▒ sonu├ž, yeni endeks durumunu yans─▒tacak ┼čekilde d├╝zenlenir - ba┼čka bir deyi┼čle, ilk ba┼čta hatay─▒ hi├ž yapmam─▒┼č gibi olacaks─▒n─▒z.

Bunu yaln─▒zca hen├╝z ittirmediyseniz yapman─▒z gerekti─čini unutmay─▒n. E─čer zorlad─▒ysan─▒z, normal olarak bir d├╝zeltme yapman─▒z gerekir.


1706







 git rm yourfiles/*.class
git commit -a -m "deleted all class files in folder 'yourfiles'"
 

veya

 git reset --hard HEAD~1
 

Uyar─▒: Yukar─▒daki komut, .java taahh├╝t etmek istedi─činiz dosyalara (ve di─čer dosyalara) yap─▒lan de─či┼čiklikleri kal─▒c─▒ olarak kald─▒racakt─▒r .

hard reset ─░├žin HEAD-1 senin yanl─▒┼č ger├žekle┼čtirmeden ├Ânce taahh├╝t durumuna sizin ├žal─▒┼čma kopyas─▒n─▒ ayarlayacakt─▒r.


975







Son taahh├╝d├╝ de─či┼čtirmek i├žin

Dizindeki dosyalar─▒ de─či┼čtirin:

 git rm --cached *.class
git add *.java
 

O zaman, ├Âzel bir ┼čube ise, taahh├╝d├╝ de─či┼čtirin :

 git commit --amend
 

Veya payla┼č─▒lan bir ┼čube ise, yeni bir taahh├╝tte bulunun:

 git commit -m 'Replace .class files with .java files'
 


( ├Ânceki bir taahh├╝d├╝n├╝ de─či┼čtirmek i├žin harika etkile┼čimli rebase kullan─▒n )


ProTip Ôäó: Bunu tekrar durdurmak *.class i├žin gitignore ekleyin .


Taahh├╝d├╝ geri almak

Bir taahh├╝d├╝n de─či┼čtirilmesi, son taahh├╝d├╝n├╝z├╝ de─či┼čtirmeniz gerekirse ideal bir ├ž├Âz├╝md├╝r, ancak daha genel bir ├ž├Âz├╝md├╝r reset .

Git ile herhangi bir taahh├╝de s─▒f─▒rlayabilirsiniz:

 git reset @~N
 

Nerede N kaydedilmesini say─▒s─▒ ├Âncedir HEAD ve @~ ├Âncekine s─▒f─▒rlar i┼člemek.

Dolay─▒s─▒yla, taahh├╝d├╝ de─či┼čtirmek yerine, ┼čunlar─▒ kullanabilirsiniz:

 git reset @~
git add *.java
git commit -m "Add .java files"
 

Check out git help reset ├╝zerine, ├Âzellikle b├Âl├╝mler --soft --mixed ve --hard bu ne daha iyi anlamak i├žin,.

Reflog

E─čer kar─▒┼č─▒rsan─▒z, b─▒rak─▒lan taahh├╝tleri bulmak i├žin her zaman reflog kullanabilirsiniz:

 $ git reset @~
$ git reflog
c4f708b [email protected]{0}: reset: moving to @~
2c52489 [email protected]{1}: commit: added some .class files
$ git reset 2c52489
... and you're back where you started
 



739


2010-07-31





kullan─▒m git revert <commit-id>

Taahh├╝t kimli─čini almak i├žin, sadece kullan─▒n git log


628







Yerel bir taahh├╝d├╝ tamamen geri almay─▒ planl─▒yorsan─▒z, taahh├╝d├╝n├╝zde ne de─či┼čti─čini de─či┼čtirdiyseniz ve bununla ilgili endi┼čelenmiyorsan─▒z, sadece a┼ča─č─▒daki komutu uygulay─▒n.

 git reset --hard HEAD^1
 

(Bu komut t├╝m taahh├╝d├╝n├╝z├╝ g├Ârmezden gelecektir ve de─či┼čiklikleriniz yerel ├žal─▒┼čma a─čac─▒n─▒zdan tamamen kaybolacakt─▒r). Taahh├╝d├╝n├╝z├╝ geri almak istiyorsan─▒z, ancak de─či┼čiklik alan─▒ndaki (de─či┼čiklik yapmadan ├Ânce) de─či┼čiklik alan─▒n─▒ de─či┼čtirmek istiyorsan─▒z git add , a┼ča─č─▒daki komutu uygulay─▒n.

 git reset --soft HEAD^1
 

┼×imdi i┼čledi─činiz dosyalar─▒n─▒z haz─▒rlama alan─▒na geliyor. Baz─▒ yanl─▒┼č i├žerikleri d├╝zenlemeniz gerekti─činden, dosyalar─▒ b├╝y├╝tmek istiyorsan─▒z, a┼ča─č─▒daki komutu uygulay─▒n.

 git reset HEAD
 

┼×imdi, a┼čamal─▒ alandan s─▒ralanmam─▒┼č alana gelmek i├žin dosyalar i┼člendi. Art─▒k dosyalar d├╝zenlemeye haz─▒r, bu y├╝zden ne de─či┼čtirirseniz d├╝zenleyin, ekleyip yeni ve yeni bir i┼člem yapmak istiyorsunuz.

Daha


509







E─čer varsa Git Ekstralar y├╝kl├╝, ├çal─▒┼čt─▒rabilece─činiz git undo son i┼člemeye geri almak. git undo 3 son 3 taahh├╝d├╝ geri al─▒r.


476







Payla┼č─▒lan depomuzdaki en son 5 komisyonu geri almak istedim. Geri almak istedi─čim revizyon kimli─čine bakt─▒m. Sonra a┼ča─č─▒dakileri yazd─▒m.

 prompt> git reset --hard 5a7404742c85
HEAD is now at 5a74047 Added one more page to catalogue
prompt> git push origin master --force
Total 0 (delta 0), reused 0 (delta 0)
remote: bb/acl: neoneye is allowed. accepted payload.
To [email protected]:thecompany/prometheus.git
 + 09a6480...5a74047 master -> master (forced update)
prompt>
 

443







git rebase -i Bu i┼č i├žin kullanmay─▒ tercih ediyorum , ├ž├╝nk├╝ kurtulmak i├žin karar verebilece─čim g├╝zel bir liste ├ž─▒k─▒yor. Buradaki di─čer cevaplar kadar do─črudan olmayabilir, ama do─čru geliyor .

Ka├ž tane listelemek istedi─činizi se├žin, ard─▒ndan b├Âyle ├ža─č─▒r─▒n (son ├╝├ž├╝ listelemek i├žin)

 git rebase -i HEAD~3
 

├ľrnek liste

 pick aa28ba7 Sanity check for RtmpSrv port
pick c26c541 RtmpSrv version option
pick 58d6909 Better URL decoding support
 

Ard─▒ndan Git, kald─▒rd─▒─č─▒n─▒z t├╝m sat─▒rlar─▒n taahh├╝tlerini kald─▒r─▒r.


423







├ľnceki yerel taahh├╝t nas─▒l d├╝zeltilir?

Bir ger├žekle┼čtirmek i├žin git-gui (veya benzeri) kullan─▒n git commit --amend . GUI'den, ayr─▒ ayr─▒ dosyalar─▒ ekleyebilir veya kald─▒rabilirsiniz. ─░leti mesaj─▒n─▒ da de─či┼čtirebilirsiniz.

├ľnceki yerel taahh├╝d├╝ geri alma

Sadece ┼čubenizi ├Ânceki konuma s─▒f─▒rlay─▒n (├Ârne─čin, gitk veya kullanarak git rebase ). Ard─▒ndan, de─či┼čikliklerinizi kaydedilmi┼č bir kopyadan tekrar uygulay─▒n. Yerel deponuzdaki ├ž├Âp toplama i┼čleminden sonra, hi├ž olmam─▒┼č istenmeyen bir taahh├╝t gibi olacak. Bunlar─▒ tek bir komutla yapmak i├žin kullan─▒n git reset HEAD~1 .

Uyar─▒ kelimesi : Dikkatsiz kullan─▒m─▒, git reset ├žal─▒┼čma kopyan─▒z─▒ kar─▒┼čt─▒r─▒c─▒ bir duruma getirmenin iyi bir yoludur. Git acemilerinin e─čer yapabilirlerse bundan ka├ž─▒nmas─▒n─▒ ├Âneririm.

Bir kamu taahh├╝d├╝n├╝ geri alma

De─či┼čiklikleri geri almak i├žin tersine kirazl─▒ bir se├žim yap─▒n ( git-revert ).

┼×ubenize hen├╝z ba┼čka de─či┼čiklikler yapmad─▒ysan─▒z, basit├že ...

 git revert --no-edit HEAD
 

Ard─▒ndan g├╝ncellenmi┼č ┼čubenizi payla┼č─▒lan havuza itin.

Taahh├╝t tarihi, her iki komisyonu ayr─▒ ayr─▒ g├Âsterecektir .


Geli┼čmi┼č: Kamu havuzundaki ├Âzel ┼čubenin d├╝zeltilmesi

Bu tehlikeli olabilir - repush i├žin ┼čubenin yerel bir kopyas─▒na sahip oldu─čunuzdan emin olun.

Ayr─▒ca not: ┼×ube ├╝zerinde ba┼čka biri ├žal─▒┼č─▒yorsa, bunu yapmak istemezsiniz.

 git push --delete (branch_name) ## remove public version of branch
 

┼×ubenizi yerel olarak temizleyin, sonra yeniden d├╝zenleyin ...

 git push origin (branch_name)
 

Normal durumda, muhtemelen ├Âzel ┼čube taahh├╝t ge├žmi┼činizin bozulmam─▒┼č olmas─▒ konusunda endi┼čelenmenize gerek yoktur. Sadece bir takip taahh├╝d├╝n├╝ zorlay─▒n (bkz. 'Kamu taahh├╝d├╝n├╝ nas─▒l geri alabilirim?') Ve daha sonra tarihi gizlemek i├žin bir squash birle┼čtirin .


407







Kal─▒c─▒ olarak geri almak istiyorsan─▒z ve baz─▒ havuzlar─▒ klonlad─▒ysan─▒z

Taahh├╝t kimli─či taraf─▒ndan g├Âr├╝lebilir

 git log 
 

O zaman yapabilirsin -

 git reset --hard <commit_id>

git push origin <branch_name> -f
 

325







E─čer ├Ânemsiz i┼člediniz, ancak itmediyseniz,

 git reset --soft HEAD~1
 

HEAD ~ 1 kafadan ├Ânce taahh├╝t i├žin bir steno. Alternatif olarak , s─▒f─▒rlamak istiyorsan─▒z, karma de─čerin SHA-1'ine bakabilirsiniz . --soft se├žene─či taahh├╝d├╝ siler ancak git durumu koydu─ču gibi de─či┼čtirilen t├╝m dosyalar─▒n─▒z─▒ "taahh├╝t edilecek de─či┼čiklikler" olarak b─▒rak─▒r.

├çal─▒┼čma a─čac─▒ndaki izlenen dosyalarda yap─▒lan de─či┼čikliklerden kurtulmak istiyorsan─▒z, i┼člem yapmadan ├Ânce " --hard " komutunu kullan─▒n.

VEYA

Zaten itti ve birisi benim durumumda ├žekti ki, git reset kullanamazs─▒n─▒z . Bununla birlikte bir yapabilirsiniz git geri alma ,

 git revert HEAD
 

Bu, yanl─▒┼čl─▒kla yap─▒lan taahh├╝d├╝n getirdi─či her ┼čeyi tersine ├ževiren yeni bir taahh├╝t olu┼čturacakt─▒r.


324







On SourceTree (GitHub'dan i├žin GUI) kullanarak, taahh├╝t ve 'Ters Teslim' do sa─č t─▒klayabilir. Bu, de─či┼čikliklerinizi geri almal─▒.

Terminalde:

Alternatif olarak kullanabilirsiniz:

 git revert
 

Veya:

 git reset --soft HEAD^ # Use --soft if you want to keep your changes.
git reset --hard HEAD^ # Use --hard if you don't care about keeping your changes.
 

275







Tek bir komut:

 git reset --soft 'HEAD^' 
 

Son yerel taahh├╝d├╝ geri almak i├žin harika ├žal─▒┼č─▒yor!


255







Sadece a┼ča─č─▒daki komutu kullanarak s─▒f─▒rlay─▒n git :

 git reset --soft HEAD~1
 

A├ž─▒klay─▒n: ne git reset yapar, temelde reset geri d├Ânmek istedi─činiz herhangi bir taahh├╝d├╝n temelini olu┼čturur, sonra --soft anahtarla birle┼čtirirseniz geri d├Âner, ancak dosyalar─▒n─▒zdaki de─či┼čiklikleri korur, b├Âylece sahneye geri d├Ânersiniz dosya az ├Ânce eklendi, HEAD dal─▒n ba┼čkan─▒ ve e─čer birle┼čtirmek isterseniz ~1 (bu durumda da kullan─▒rs─▒n─▒z HEAD^ ), ne istedi─činizi taahh├╝t eder.

A┼ča─č─▒daki durumlarda, ger├žek durumlarda meydana gelebilecek t├╝m ad─▒mlar ve kodun i┼členmesi dahil, sizin i├žin daha ayr─▒nt─▒l─▒ olarak a┼ča─č─▒daki ad─▒mlar─▒ olu┼čturuyorum:


Git'teki son taahh├╝tler nas─▒l geri al─▒n─▒r?


246







Son Git taahh├╝d├╝n├╝ nas─▒l geri alabilirim?

Her ┼čeyi en son i┼člemden ├Ânceki haline geri d├Ând├╝rmek i├žin, HEAD'den ├Ânceki i┼če geri d├Ânmemiz gerekir.

  1. Yapt─▒─č─▒n─▒z de─či┼čiklikleri saklamak istemiyorsan─▒z:

     git reset --hard HEAD^
     
  2. De─či┼čikliklerinizi korumak istiyorsan─▒z:

     git reset --soft HEAD^
     

┼×imdi git g├╝nl├╝─č├╝n├╝ kontrol et. Son taahh├╝d├╝m├╝z├╝n kald─▒r─▒ld─▒─č─▒n─▒ g├Âsterecektir.


227







Do─čru durumu bulmak i├žin reflog kullan─▒n

 git reflog
 


daha ├Ânce reflog yap

SIFIRLA ├ľNCE SO─×UTMA

Do─čru reflog se├žin (benim durumumda f3cb6e2) ve yaz─▒n

 git reset --hard f3cb6e2
 

Bundan sonra repo HEAD, RESET SONRASI SONRA HEADid LOGÔÇÖuna s─▒f─▒rlanacakt─▒r.
s─▒f─▒rlama efekti

Sonunda reflog a┼ča─č─▒daki resme benziyor


reflog sonras─▒

SO─×UTMA N─░HA─░


183







"├çal─▒┼čan a─čac─▒ son i┼člemeye s─▒f─▒rla"

 git reset --hard HEAD^ 
 

"├çal─▒┼čan a─ča├žtaki bilinmeyen dosyalar─▒ temizle"

 git clean    
 

bkz. - Git H─▒zl─▒ Ba┼čvuru

NOT: Bu komut ├Ânceki taahh├╝d├╝n├╝z├╝ siler, bu y├╝zden dikkatli kullan─▒n! git reset --hard daha g├╝venli -


177







─░lk ├žal─▒┼čt─▒rma:

 git reflog
 

Size deponuzda ger├žekle┼čtirdi─činiz t├╝m olas─▒ eylemleri g├Âsterir; ├Ârne─čin, taahh├╝t, birle┼čtirme, ├žekme, vb.

O zaman yap─▒n:

 git reset --hard ActionIdFromRefLog
 

159







Son i┼člemi geri al:

git reset --soft HEAD^ veya git reset --soft HEAD~

Bu son taahh├╝d├╝ geri al─▒r.

Burada --soft kademelendirmeye s─▒f─▒rlamak demektir.

HEAD~ veya HEAD^ HEAD'den ├Ânce karar vermek i├žin hareket etmek demektir.


Yeni taahh├╝d├╝n son taahh├╝d├╝n├╝ de─či┼čtirin:

 git commit --amend -m "message"
 

Son taahh├╝d├╝ yeni taahh├╝tle de─či┼čtirecek.


152







Di─čer yol:

Geri almak istedi─činiz ┼čubeye g├Âz at─▒n, ard─▒ndan yerel ├žal─▒┼čma kopyan─▒z─▒ uzaktaki sunucuda en yenisi olmak istedi─činize geri d├Ând├╝r├╝n (g├╝le g├╝le gidene kadar her ┼čey). Bunu yapmak i├žin SourceTree'de sa─č t─▒klay─▒p "BRANCHNAME ├╝r├╝n├╝n├╝ bu i┼čleme s─▒f─▒rla" se├žene─čini se├žtim.

Ard─▒ndan havuzunuzun yerel dizinine gidin ve bu komutu ├žal─▒┼čt─▒r─▒n:

 git -c diff.mnemonicprefix=false -c core.quotepath=false push -v -f --tags REPOSITORY_NAME BRANCHNAME:BRANCHNAME
 

Bu, yerel deponuzdaki mevcut olandan sonraki t├╝m taahh├╝tleri siler ancak yaln─▒zca bu dal i├žin olanlar─▒ siler.


147







Yaz─▒n git log ve son tamamlama karma kodunu bulmak ve enter:

 git reset <the previous co>
 

138







Benim durumumda yanl─▒┼čl─▒kla istemedi─čim baz─▒ dosyalar i┼čledim. Ben de a┼ča─č─▒dakileri yapt─▒m ve i┼če yarad─▒:

 git reset --soft HEAD^
git rm --cached [files you do not need]
git add [files you need]
git commit -c ORIG_HEAD
 

Sonu├žlar─▒ gitk veya git log --stat ile do─črulay─▒n


134







Basit, bunu komut sat─▒r─▒nda ├žal─▒┼čt─▒r─▒n:

 git reset --soft HEAD~ 
 

126







Bunu yapman─▒n bir├žok yolu vard─▒r:

Git / ├Ânceki taahh├╝tleri geri almak i├žin verilen komutu:

Uyar─▒: Ne yapt─▒─č─▒n─▒z─▒ bilmiyorsan─▒z - sert kullanmay─▒n. - hard ├žok tehlikelidir ve dosyalar─▒n─▒z─▒ silebilir.

Git'teki taahh├╝d├╝ geri almak i├žin temel komut:

 $ git reset --hard <COMMIT -ID>
 

veya

 $ git reset --hard HEAD~<n>
 

COMMIT-ID : Taahh├╝d├╝n kimli─či

n: geri almak istedi─činiz son i┼člemin say─▒s─▒

Taahh├╝t kimli─čini a┼ča─č─▒da g├Âsterildi─či gibi alabilirsiniz:

 $ **git log --oneline**

d81d3f1 function to subtract two numbers

be20eb8 function to add two numbers

bedgfgg function to mulitply two numbers
 

d81d3f1 ve be20eb8'in burada i┼člem kimli─či oldu─ču yerde .

┼×imdi baz─▒ davalar─▒ g├Ârelim:

'D81d3f1' son i┼člemine geri d├Ânmek istedi─činizi varsayal─▒m. ─░┼čte iki se├ženek:

 $ git reset --hard d81d3f1
 

veya

 $ git reset --hard HEAD~1
 

'Be20eb8' taahh├╝d├╝n├╝ geri almak istedi─činizi varsayal─▒m:

 $ git reset --hard be20eb8
 

Daha ayr─▒nt─▒l─▒ bilgi i├žin, ba┼čl─▒─č─▒ belirtilen duruma s─▒f─▒rlamak i├žin ba┼čka komutlar─▒ da ba┼čvurabilir ve deneyebilirsiniz:

 $ git reset --help
 

123







├ľnceki revizyona s─▒f─▒rlamak i├žin, t├╝m taahh├╝t edilmemi┼č de─či┼čikliklerin kal─▒c─▒ olarak silinmesi:

 git reset --hard HEAD~1
 

121







Kullan─▒m SourceTree sizin kaydedilmesini ve a─čac─▒ g├Ârmek (Git i├žin grafiksel arac─▒). Do─črudan sa─č t─▒klatarak el ile s─▒f─▒rlayabilirsiniz.


121







Yerel bir taahh├╝t i├žin

 git reset --soft HEAD~1
 

veya hangi taahh├╝d├╝n tam olarak oldu─čunu hat─▒rlam─▒yorsan─▒z, kullanabilirsiniz

 git rm --cached <file>
 

─░tilmi┼č bir taahh├╝t i├žin

Dosyalar─▒ depo ge├žmi┼činden kald─▒rman─▒n do─čru yolu kullan─▒yor git filter-branch . Yani,

 git filter-branch --index-filter 'git rm --cached <file>' HEAD
 

Ama bu komutu dikkatle kullanman─▒z─▒ tavsiye ederim. Git-filter-branch (1) K─▒lavuz Sayfas─▒nda daha fazlas─▒n─▒ okuyun .


120



─░lgili yay─▒nlar


En son taahh├╝tleri Git ile yeni bir ┼čubeye ta┼č─▒y─▒n

GitÔÇÖteki yerel komisyonlar─▒ atmak

Git: ─░ki dal─▒n en son ortak atalar─▒n─▒ bulun.

Git'te uzaktaki depolara itilen belirli bir i┼člemi geri al

Git'teki uzak bir ┼čubeyi izlemeyi nas─▒l durdurursun?

Git'teki bir daldaki de─či┼čiklikler nas─▒l yap─▒l─▒r

GitÔÇÖteki yerel komisyonlar nas─▒l at─▒l─▒r?

Git'te mevcut bir etiket iletisini nas─▒l d├╝zenlerim?

Git'deki son i┼člemi geri alma [yinelenen]

Bir dosyay─▒ de─či┼čtiren en son git taahh├╝d├╝n├╝ nas─▒l bulabilirim?

Etiketle ilgili di─čer sorular [git]


Belirli bir Git ┼čubesini nas─▒l klonlar─▒m? [├žift]

Belirli bir aral─▒ktaki JavaScript'te rastgele tam say─▒lar ├╝retiliyor mu?

PostgreSQL'de tablolar─▒ g├Âster

Vim kay─▒tlar─▒n─▒ nas─▒l kullan─▒r─▒m?

Jilet G├Âr├╝n├╝m├╝ Sayfas─▒nda bir ad alan─▒n─▒ nas─▒l i├že aktar─▒r─▒m?

Bir vekt├Âre vekt├Âr ekleme [duplicate]

Android'de bir SOAP web servisi nas─▒l aran─▒r [kapal─▒]

MVC'de bir model nas─▒l yap─▒land─▒r─▒lmal─▒d─▒r? [kapal─▒]

Python'da dize kar┼č─▒la┼čt─▒rmas─▒: is vs. == [duplicate]

Windows komut sat─▒r─▒ndaki ge├žerli tarih / saati bir dosya / klas├Âr ad─▒nda kullan─▒m i├žin uygun bir bi├žimde nas─▒l alabilirim?