logo

Git son taahhüdü geri alma

Bir yazılım mühendisi veya web geliştiricisi olarak Git depomuza birçok taahhüt göndermemiz gerekebilir.

Ancak Git depomuza gönderilmeyecek dosyaları taahhüt etmek istediğimiz başka durumlar da vardır. Herhangi bir taahhütte bulunmadan önce bazen bazı ek değişiklikler uygulamak isteyebiliriz.

Sonuç olarak Git depomuz aracılığıyla son işlemi geri almamız gerekiyor. Bu başlıkta son commit’i nasıl geri alabileceğimizi göreceğiz.

Sıfırlamayla birlikte Son Git Taahhüdünü Geri Al

Komutu çalıştırarak son git taahhüdünü kolayca geri alabiliriz, yani, 'git'i sıfırla' bir seçenekle birlikte, yani, '-yumuşak' bu, dosyalarımızda yapılan tüm değişiklikleri koruyacaktır. 'HEAD~1' olan geri alma taahhüdünü tanımlamamız gerekiyor.

Git'in son taahhüdü Git depomuzdan silinecek.

 $ git reset --soft HEAD~1 

Bu gösterimde,

'KAFA~1': Bu, günlüğün geçmişi içinde bu HEAD'i tek bir işleme sıfırlamak istediğimiz anlamına gelir.

Java'da palindrom
 $ git log --oneline 3fad532 Last commit (HEAD) 3bnaj03 Commit before HEAD (HEAD~1) Vcn3ed5 Two commits before HEAD (HEAD~2) 

Yukarıdaki komutun etkisi ne olacak?

Komut, yani, 'git'i sıfırla' bir komut olarak görülebilir, yani komutun tersi 'git ekle' , esasen dosyaları Git dizinine eklemek.

Seçeneği açıklarsanız '-yumuşak' Git, dizin veya yürütme dizini içindeki dosyaları hiçbir şekilde değiştirmez.

Örneğin, son taahhüdümüze iki dosya ekledik, ancak bu dosyaya bazı değişiklikler uygulamak istiyoruz.

dolgu css
 $ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 Second commit *7083e29 Initial repository commit 

Sonuç olarak başvuracağız. 'git'i sıfırla' seçeneğiyle birlikte '-yumuşak' son taahhüdü geri almak ve ayrıca bazı ek değişiklikler uygulamak için.

 $ git reset --soft HEAD~1 $ git status 

Şube müdürü üzerinde

Şubemiz taahhüt 1'e göre master/Origin öndedir (yerel taahhütlerimizi yayınlamak için 'git push'u uygulayın).

Yapılacak değişiklikler:

 (apply 'git restore --staged …' to unstage) 

yeni dosya: dosya1

 $ git log --oneline --graph *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit 

Görebildiğimiz gibi, taahhüt silinmiş olmasına rağmen, son taahhüt (işlenecek değişiklikler) geri alındığında dosya hala dizindedir.

Depomuzdaki son işlemi başarıyla gerçekleştirdik.

Git işlemini Sert Sıfırlama

Yukarıdaki bölümde kolayca yapabileceğimizi düşünebiliriz. son işlemi geri al ve değişiklikleri koru indeks içindeki herhangi bir dosyaya yapılır. Ancak bazı durumlarda herhangi bir dosyada yapılan değişiklikleri ve taahhütleri kaldırmak isteriz.

Bir seçeneğin amacıdır, yani, '-zor' .

Son işlemi geri almak ve dizin ve dizin içindeki her değişikliği kaldırmak için bir komut yürütün; 'git'i sıfırla' seçenekle birlikte, yani, '-zor' ve HEAD komutundan önce bir işlemi tanımlayın ('KAFA~1') .

 $ git reset --hard HEAD~1 

Kullanıldıktan sonra her taahhüt ve değişiklik indeksten ve dizinden kaldırılacaktır. '--zor' emretmek. Bu yüzden dikkatli olmalıyız.

Örneğin, 'dosya1' adlı herhangi bir yeni dosyayı Git depomuza kaydettik.

 $ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit 

Şimdi, son işlemi geri almak ve her değişikliği kaldırmak istediğimizi varsayalım.

 $ git reset --hard HEAD~1 

Şimdi, HEAD 90f8bb1 İkinci taahhütte

Şimdi git depo durumumuzu kontrol edelim.

mason formülü
 $ git status 

Şube müdürü üzerinde

Şubemiz master/Origin ile çağdaştır (yerel taahhütlerimizi yayınlamak için 'git Push' komutunu uygulayın).

string'i int'ye dönüştürme

Artık taahhüt edilecek hiçbir şey yok ve çalışan ağaç temiz.

Karışık Sıfırlama Git taahhüdü

Değişiklikleri çalışma dizinimizde tutun, ancak dizin içinde DEĞİL. Komutu uygulamamız gerekiyor, yani ., 'git sıfırla' seçenekle birlikte, yani, '-karışık' . Bu komuttan sonra 'HEAD~1'i basitçe son işleme eklemeliyiz.

 $ git reset --mixed HEAD~1 

Örneğin, 'dosya1' adlı herhangi bir dosyayı, geri almamız gereken herhangi bir işleme dahil ettik.

 $ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit 

Basitçe, komutu yürütüyoruz, yani, 'git'i sıfırla' seçenekle birlikte, yani, '-karışık' son taahhüdü geri almak için.

Sonuç olarak, '-karışık' komut bir 'karışım' donanımdan ve yazılımdan sıfırlama arasında, dolayısıyla adı.

Şube müdürü üzerinde

Şubemiz taahhüt 1 ile master/Origin öndedir (yerel taahhütlerimizi yayınlamak için 'git push'u uygulayın).

İzlenmeyen dosyalar: (işlenecek şeyin içine eklemek için 'git add…' uygulayın)

 file1 

İşleme için hiçbir şey dahil edilmedi ancak izlenmeyen dosyalar mevcut (izleme için 'git track' uygulayın).

Bu nedenle, dosyalarda yapılan değişiklikleri koruyarak son işlemi geri almak için başka bir uygulama tespit ettik.

Geri alma ile birlikte Son Taahhüdü geri al

Komutu uygulayın, yani, 'git'e geri dön' ve geri alınacak bir taahhüdü tanımlayın, yani, 'KAFA' Son Git taahhüdünü geri almak için tarihin taahhüdüne.

 $ git revert HEAD 

'Git revert' komutu, 'git reset' komutuyla karşılaştırıldığında farklıdır çünkü son işlemin dejenere edilmesiyle tanımlanan bazı değişikliklerin yanı sıra herhangi bir yeni işlemi de kaydedebilir.

'HEAD~1'i 'git reset' komutuyla tanımlayabiliriz çünkü bu sıfırlama komutu, açıklanan taahhüdü bozarken herhangi bir yeni HEAD yerini ayarlayacaktır.

bash'taki alt dize

Sonuç olarak, geri dönmek ve gerçekleştirilmemeyi taahhüt etmek için bazı dosyalarda yapılan değişiklikleri tekrar uygulayacağız. Git depomuz için herhangi bir yeni dosyayı taahhüt ettik ancak bu taahhüdü bozmak istiyoruz.

 $ git log --oneline -graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit 

'Git revert' komutunu çalıştırıyorsanız Git, değişiklikleri otomatik olarak gerçekleştirmek için metin düzenleyicimizi açacaktır.

Git son taahhüdü geri alma

Bir taahhüt mesajını yürütmeyi bitirdiğimizde yeni bir taahhüt karması ile birlikte yeni bir mesaj gösterilecektir.

 [master 2d40a2c] Revert 'Added a new file named as file1' 1 file changed, 1 deletion(-) delete mode 100644 file1 

Git geçmişimizi tekrar kontrol etmemiz gerekirse, depomuz aracılığıyla son işlemi geri almak için yeni bir işlemin eklendiğini fark edebiliriz.

 $ git log --oneline --graph *2d40a2c (HEAD -> master) Revert 'Added a new file named file1' *1fa26e9 Added a new file named as file1 *ee8b133 Second commit *a3bdedf Initial commit