Timpa lokal saya cabang dengan cabang terpencil

Saya telah benar-benar fubar'd saya cabang lokal, dan ingin memulai dari awal. Versi pada server adalah benar.

Saya don't ingin memulai dari awal, saya ingin menggunakan sejarah lokal untuk memperbaiki kesalahan besar saya mengacau. (Aku dapat jika aku harus.)

git fetch branchname, dan git pull branchname don't bekerja. Pesan yang saya dapatkan adalah "up to date" namun, saya versi lokal tidak sesuai dengan yang dari server.

git pull asal/branchname memberi saya "tidak ditemukan" kesalahan.

Mengomentari pertanyaan (1)

pertama, buat cabang baru di posisi saat ini (dalam kasus anda perlu lama anda 'kacau' sejarah):

git branch fubar-pin

update daftar cabang dan sinkronisasi baru melakukan:

git fetch --all

kemudian, reset cabang anda ke titik di mana asal/cabang poin untuk:

git reset --hard origin/branch

hati-hati ini akan menghapus semua perubahan dari anda bekerja pohon!

Komentar (8)

Apa yang saya lakukan ketika saya mengacaukan saya cabang lokal adalah saya hanya mengubah nama saya patah cabang, dan check out/cabang hulu cabang lagi:

git branch -m branch branch-old
git fetch remote
git checkout -b branch remote/branch

Maka jika anda're pastikan anda don't ingin apa-apa dari cabang tua, keluarkan:

git branch -D branch-old

Tapi biasanya saya meninggalkan old cabang di seluruh lokal, hanya dalam kasus aku punya sesuatu di sana.

Komentar (3)

Cabang lokal anda mungkin memiliki modifikasi yang ingin anda buang. Untuk melakukan ini, anda'll harus menggunakan git reset untuk me-reset kepala cabang untuk tempat terakhir yang anda menyimpang dari hulu repo's cabang. Menggunakan git branch -vuntuk menemukan sha1 id hulu cabang, dan me-reset cabang itu menggunakan git reset SHA1ID. Maka anda harus mampu melakukan git checkout untuk membuang perubahan itu yang tersisa di direktori anda.

Catatan: selalu melakukan hal ini didukung repo. Dengan cara itu anda dapat meyakinkan anda're diri itu bekerja dengan benar. Atau jika itu tidak't, anda memiliki cadangan untuk kembali ke.

Komentar (1)
git reset --hard

Ini adalah untuk mengembalikan semua perubahan lokal asal kepala

Komentar (0)