Git’te Yapılan Commit’i Geri Alma

Git’te yaptığınız bir commit’i geri almak için iki yol kullanabilirsiniz.

Örneğin log’da yaptığımız 3 commit olsun.

commit 754514206d99fb32307ff79ec37a4e6b28bfad31
Author: Bora Aymete
Date:   Mon Oct 22 15:38:08 2012 +0300

    undo2

commit d24fb55ee8888f40c59f277c9bbc7c8c8c8dc8bf
Author: Bora Aymete
Date:   Mon Oct 22 15:37:51 2012 +0300

    undo1

commit ef359c43cde842fa9e4705ca5753a265c6935eeb
Author: Bora Aymete
Date:   Mon Oct 22 14:10:31 2012 +0300

    added comments

git reset–soft d24fb55ee8888f40c59f277c9bbc7c8c8c8dc8bf komutu durumu undo1 commit’ine geri döndürür. Yapılan değişiklikler staged durumdadır.

# On branch master
# Changes to be committed:
#   (use “git reset HEAD <file>…” to unstage)
#
#       modified:   app/models/post.rb
#

Dilenirse git reset HEAD app/models/post.rb komutu verilerek unstaged alanına çekilebilir.

D app/models/post.rb
Unstaged changes after reset:
M       app/models/post.rb

Kodu undo1 commit’indeki haline git checkout app/models/post.rb komutu ile geri döndürebilirsiniz.

git status

# On branch master
nothing to commit (working directory clean)

git log

commit d24fb55ee8888f40c59f277c9bbc7c8c8c8dc8bf
Author: Bora Aymete
Date:   Mon Oct 22 15:37:51 2012 +0300

    undo1

commit ef359c43cde842fa9e4705ca5753a265c6935eeb
Author: Bora Aymete
Date:   Mon Oct 22 14:10:31 2012 +0300

    added comments
   
Bunu sıra ile yapmanız gerekmez, added comments commit’ine direkt olarak geri döndürebilirsiniz.

Yukarıdaki işlemleri daha hızlı bir şekilde yapmak isterseniz git reset –hard HEAD^ komutunu kullanabilirsiniz. Dikkatli olmanızı tavsiye ederim, geri döndüğünüz commit’ten sonraki commit’ler kaybolacaktır.

git log
 
commit 1e38ea2658667aa3443bce980f494895bc1e5ed9
Author: Bora Aymete
Date:   Mon Oct 22 15:46:09 2012 +0300

    undo2

commit d24fb55ee8888f40c59f277c9bbc7c8c8c8dc8bf
Author: Bora Aymete
Date:   Mon Oct 22 15:37:51 2012 +0300

    undo1

commit ef359c43cde842fa9e4705ca5753a265c6935eeb
Author: Bora Aymete
Date:   Mon Oct 22 14:10:31 2012 +0300

    added comments

git reset –hard ef359c43cde842fa9e4705ca5753a265c6935eeb

git log

commit ef359c43cde842fa9e4705ca5753a265c6935eeb
Author: Bora Aymete
Date:   Mon Oct 22 14:10:31 2012 +0300

    added comments