Saya baru saja menghapus cabang yang salah dengan beberapa perubahan eksperimental yang saya perlukan git branch -D branchName
.
Bagaimana cara memulihkan cabang?
Saya baru saja menghapus cabang yang salah dengan beberapa perubahan eksperimental yang saya perlukan git branch -D branchName
.
Bagaimana cara memulihkan cabang?
Jawaban:
Anda dapat menggunakan git reflog untuk menemukan SHA1 dari commit terakhir dari cabang. Dari titik itu, Anda bisa membuat ulang cabang menggunakan
git branch branchName <sha1>
Sunting: Seperti yang dikatakan @seagullJS, branch -D
perintah memberitahu Anda sha1, jadi jika Anda belum menutup terminal namun itu menjadi sangat mudah. Misalnya ini menghapus dan kemudian segera mengembalikan cabang bernama master2
:
user@MY-PC /C/MyRepo (master)
$ git branch -D master2
Deleted branch master2 (was 130d7ba). <-- This is the SHA1 we need to restore it!
user@MY-PC /C/MyRepo (master)
$ git branch master2 130d7ba
git branch branchName origin/branchName
Jika Anda baru saja menghapus cabang, Anda akan melihat sesuatu seperti ini di terminal Anda:
Deleted branch branch_name(was e562d13)
- di mana e562d13 adalah ID unik (alias "SHA" atau "hash"), dengan ini Anda dapat mengembalikan cabang yang dihapus.
Untuk memulihkan cabang, gunakan:
git checkout -b <branch_name> <sha>
misalnya :
git checkout -b branch_name e562d13
Pertama: buat cadangan seluruh direktori Anda, termasuk direktori .git.
Kedua: Anda dapat menggunakan git fsck --lost-found
untuk mendapatkan ID dari komitmen yang hilang.
Ketiga: rebase atau gabungkan ke komit yang hilang.
Keempat: Selalu berpikir dua kali sebelum menggunakan -D atau --force with git :)
Anda juga bisa membaca diskusi yang bagus tentang cara memulihkan dari kesalahan semacam ini.
EDIT: Ngomong-ngomong, jangan lari git gc
(atau membiarkannya berjalan sendiri - yaitu jangan lari git fetch
atau yang serupa) atau Anda mungkin kehilangan komitmen untuk selamanya.
Terima kasih, ini berhasil.
git branch new_branch_name
sha1
git checkout new_branch_name
// dapat melihat file-file lama saya yang sudah diperiksa di cabang lama saya
Ikuti langkah ini:
1: Masukkan:
git reflog show
Ini akan menampilkan semua sejarah Komit, Anda harus memilih sha-1 yang memiliki komit terakhir yang ingin Anda kembalikan
2: buat nama cabang dengan ID Sha-1 yang Anda pilih misalnya: 8c87714
git branch your-branch-name 8c87714