Git'te taahhüt edilmiş bir dosyayı geri döndürme olasılığı var mı? GitHub'a bir kayıt gönderdim ve sonra aktarılmasını istemediğim bir dosya olduğunu fark ettim (değişiklikleri bitirmedim).
Git'te taahhüt edilmiş bir dosyayı geri döndürme olasılığı var mı? GitHub'a bir kayıt gönderdim ve sonra aktarılmasını istemediğim bir dosya olduğunu fark ettim (değişiklikleri bitirmedim).
Yanıtlar:
güncelleme: daha güvenli yöntem eklendi
dosyanızın önceki (değişmemiş) durumunu kontrol edin; çift çizgiye dikkat edin
git checkout HEAD^ -- /path/to/file
taahhüt et:
git commit -am "revert changes on this file, not finished with it yet"
itin, kuvvet gerekmez:
git push
bitmemiş işinize geri dönün, tekrar yapın (3 kez yukarı ok):
git checkout HEAD^ -- /path/to/file
Depo HEAD'in son işlemesini değiştirmek için, yanlışlıkla zorlanan çalışmanızı karartarak, onu çoktan çekmiş olabilecek ve gri saçları çıkacak ve yerel şube başkanını uzlaştırmaya çalışırken çok zaman kaybedecek olan meslektaşınızla potansiyel olarak bir çatışmaya girerek merkezi olanla:
Dosya değişikliğini son işlemeden kaldırmak için:
dosyayı son işlemden önceki durumuna geri döndürmek için şunu yapın:
git checkout HEAD^ /path/to/file
son kaydı geri alınan dosyayla güncellemek için şunu yapın:
git commit --amend
güncellenmiş kaydı depoya aktarmak için şunları yapın:
git push -f
Gerçekten, daha önce bahsedilen tercih edilen yöntemi kullanmayı düşünün.
git checkout HEAD~2 /path/to/file
? Düzenleme: Benim durumumda istediğim gibi görünüyorgit rm /path/to/file
Dosyayı uzak depodan kaldırmak istiyorsanız, önce --cache seçeneği ile projenizden kaldırın ve ardından itin:
git rm --cache /path/to/file
git commit -am "Remove file"
git push
(Bu, dosya uzak depoya birkaç işlemden önce eklenmiş olsa bile çalışır) Göndermek istemediğiniz dosya uzantılarını .gitignore'a eklemeyi unutmayın.
Yalnızca bir dosyayı belirli bir revizyona geri döndürebilirsiniz.
İlk önce dosyanın değiştirildiği kayıtları kontrol edebilirsiniz.
git log path/to/file.txt
Ardından revizyon numarasıyla dosyayı ödünç alabilirsiniz.
git checkout 3cdc61015724f9965575ba954c8cd4232c8b42e4 /path/to/file.txt
Bundan sonra taahhüt edebilir ve tekrar itebilirsiniz.
Dosyayı doğru durumda sıfırlayın, kesin ve tekrar itin.
Henüz hiç kimsenin değişikliklerinizi almadığından eminseniz, --amend
kaydetme sırasında önceki kaydetmeyi değiştirmek için (yani geçmişi yeniden yazmak) ve ardından itmek için kullanabilirsiniz. -f
Yine de, itmeyi zorlamak için iterken seçeneği kullanmanız gerekeceğini düşünüyorum .
Son işlemenin karma kodunu alın.
git log
git revert <hash_code_from_git_log>
git push
GHR'ye bakın. ihtiyacın olanı alabilirsin, umarım bu yararlıdır