Saya mulai membuat perubahan pada basis kode saya, tidak menyadari saya berada di cabang topik lama. Untuk mentransfernya, saya ingin menyimpannya dan kemudian menerapkannya ke cabang baru di luar master. Saya biasa git stash pop
mentransfer perubahan yang sedang berlangsung ke cabang baru ini, lupa bahwa saya belum menarik perubahan baru ke master sebelum membuat cabang baru. Ini menghasilkan banyak konflik gabungan dan hilangnya simpanan perubahan saya (karena saya menggunakan pop).
Setelah saya membuat ulang cabang baru dengan benar, bagaimana saya bisa memulihkan perubahan simpanan saya untuk menerapkannya dengan benar?
git stash drop
sebagai langkah terakhir untuk menyingkirkan simpanan yang tidak diinginkan dari # 2.git stash pop
: "Menerapkan negara dapat gagal dengan konflik; dalam hal ini, itu tidak dihapus dari daftar simpanan. Anda perlu menyelesaikan konflik dengan tangan dan menelepongit stash drop
secara manual sesudahnya." ( git-scm.com/docs/git-stash )Untungnya
git stash pop
tidak tidak mengubah simpanan dalam kasus konflik!Jadi tidak perlu khawatir, cukup bersihkan kode Anda dan coba lagi.
Katakanlah basis kode Anda sudah bersih sebelumnya, Anda bisa kembali ke keadaan itu dengan:
git checkout -f
Kemudian lakukan hal-hal yang Anda lupa, mis.
git merge missing-branch
Setelah itu jalankan
git stash pop
lagi dan Anda mendapatkan simpanan yang sama , yang bertentangan sebelumnya.Perhatian: Stash aman, namun, perubahan yang tidak dikomit di direktori kerja tidak. Mereka bisa kacau.
sumber
git stash pop
berusaha menggabungkan, konflik, dan menyimpannya.git stash pop
sesering yang Anda butuhkan sampai berakhir tanpa konflik. Jadi setelah konflik Anda, ya, direktori kerja berantakan, namun, Anda dapat membersihkannya dan menelepongit stash pop
lagi.git checkout -f
:!Instruksi di sini sedikit rumit sehingga saya akan menawarkan sesuatu yang lebih mudah:
git reset HEAD --hard
Abaikan semua perubahan pada cabang saat ini...
Lakukan pekerjaan perantara seperlunyagit stash pop
Pop ulang simpanan lagi di kemudian hari ketika Anda siapsumber
harus bekerja, jika keadaan Anda sebelumnya bersih.
sumber