Git, kod tabanınızın herhangi bir sürümünü izlemek için güçlü bir araçtır ve genellikle geri dönüp dosyaların eski sürümlerini geri yüklemek gerekir. Git, tüm taahhütleri geri alabilir veya tüm depoyu sıfırlayabilir, ancak tek bir dosya veya dizindeki değişiklikleri de geri alabilir.
geri yükle ve sıfırla
Normalde, bir taahhüt “geri alındığında” Git, zıt değişiklikleri uygulayan ve etkili bir şekilde iptal eden yeni bir taahhüt uygular. Bu, bir hata yaptıysanız ve geçmişte olmasına rağmen bu taahhüdü “silmeniz” gerekiyorsa kullanışlıdır.
Depo sıfırlama biraz farklıdır. Ancak, bir seferde yalnızca bir taahhüdü geri alabilirsiniz. git reset
, Git, deponun durumunu bu taahhüdün yapıldığı zamana göre tamamen değiştirecektir. Bu, genellikle taahhütleri kaldırmak veya şube geçmişini geri yüklemek için çeşitli nedenlerle yapılır.
Her iki işlem de deponun tamamında çalışır, ancak aynı eylemleri tek tek dosya veya klasörlerde gerçekleştirmek için benzer komutları da kullanabilirsiniz. Örneğin, kullan git reset
Tek bir dosyada, o dosyayı taahhüt yapıldığında olduğu gibi geri yükleyecektir. Git geçmişinizden bir dosyanın daha eski bir sürümünü almak istiyorsanız bu kullanışlıdır.
İlişkili: Git Sıfırlama gerçekte nasıl çalışır? Yumuşak, sabit ve hibrit sıfırlamaları açıklama
İlişkili: Git taahhütlerini onarın, düzenleyin veya geri alın (Git geçmişini değiştirmeyin)
Git’te eski sürümleri görüntüleyin
Bir dosyayı geri döndürmenin düşük teknolojili çözümü oldukça basittir: Github ve diğer Git sunucularının çoğu dosya geçmişinizi takip eder ve bir günlüğe tıklayıp “Dosyalara Göz Atın, Anlık Görüntü Almak İçin Tıklayın” seçeneğine tıklayabilirsiniz. deponuz zamanında. Daha sonra dosyayı indirebilir veya metni kopyalayabilirsiniz.
Bu, özellikle büyük kod dosyalarıyla çalışıyorsanız ve yazdığınız işlevlerin eski sürümlerini görüntülemek istiyorsanız kullanışlıdır. Bu durumda, muhtemelen her şeyi geri almak istemezsiniz, sadece tek işi. Git CLI’ye dokunmadan bu işlevin kodunu kopyalayabilirsiniz.
Git’te bir dosyayı daha eski bir sürüme sıfırlama
Bu test deposunda, README’yi düzenleyen ve yeni bir dosya ekleyen bir taahhüt oluşturduk. README’de yapılan değişiklikleri geri almak istiyoruz, ancak tüm depoyu orijinal taahhüde geri döndürmek istemiyoruz.
Çözüm, bu dosyanın daha eski bir sürümünü kontrol ederek README’yi sıfırlamaktır. portallar checkout
Komut, dallar arasında geçiş yapmak gibi pek çok şey yapar, ancak esas olarak kesinleştirme veya dal kimliğini kullanarak dosyaları indirmek için kullanılır.
Bir dosyayı eski bir sürüme geri döndürmek için, sıfırlamak istediğiniz zamanın taahhüt kimliğini bulmanız gerekir. kullanabilirsiniz git log
Bunun için, yalnızca o dosyadaki değişiklikleri görüntülemek için tek bir dosya ile sınırlıdır:
git log README.md
Yürütme kimliğini kopyalayın, ardından çalıştırın git checkout
Kimlik ve dosya yolu ile:
git checkout 22710694b25d7ce5297559851beb7d3e4de811bb README.md
Bu, dosyayı tekrar değiştirecek, ancak değişiklikler henüz kaydedilmeyecek. Hazır olduğunuzda düzenlemekte ve yakalamakta özgürsünüz.
Bu örnekte, git checkout
Değişiklikler bir sonraki taahhüt için hazırlanır. Taahhüt etmek istemiyorsanız, değişiklikleri geri almakta özgürsünüz. Bu, dosyaların eski sürümlerini Github kullanmadan geçici olarak indirmek için yararlı olabilir.
Tek tek dosyalarda yapılan değişiklikleri geri alın
Benzer şekilde, tek bir işlemdeki değişiklikleri geri almak isterseniz, bunu şu şekilde yapabilirsiniz: git revert
. Bunu tek bir dosyaya uygulamanın bir yolu yoktur, ancak işlem diğer dosyaları etkiliyorsa değişiklikleri iptal edebilirsiniz.
kullanımlar --no-commit
Git’in otomatik olarak oluşturduğu “geri alma taahhüdünün” değiştirilmesine izin veren bayrak.
git revert de8564b131ca6a15a7e7c73f5ef156b119cc0b93
Geri yükleme tamamlanmadan önce dosyaların üzerine yazmanıza olanak tanır. İstenmeyen değişiklikler yapılırsa, bunları müşteriniz aracılığıyla veya bir dosyada gönderebilirsiniz. git checkout
.
git checkout -- file
kaynak bağlantı
Diğer gönderilerimize göz at
[wpcin-random-posts]