Berbagai cara untuk menghapus perubahan Git lokal

625

Saya baru saja mengkloning repositori git dan memeriksa cabang. Saya mengerjakannya, dan kemudian memutuskan untuk menghapus semua perubahan lokal saya, karena saya ingin salinan aslinya.

Singkatnya, saya harus melakukan dua perintah berikut untuk menghapus perubahan lokal saya

git checkout .

git clean -f

Pertanyaanku adalah,

(1) Apakah ini pendekatan yang benar dalam menyingkirkan perubahan lokal, atau tolong beri tahu saya pendekatan yang benar.

(2) kapan kita menggunakan git reset --hardkarena saya dapat mengatur ulang bahkan tanpa perintah ini

Terima kasih

* Solusi: Sunting Utama: 03/26: * Mengganti banyak istilah yang tidak jelas dengan terminologi spesifik git [dilacak / tidak dilacak / dipentaskan / tidak dipentaskan]

Hanya ada tiga kategori file ketika kami membuat perubahan lokal:

Jenis 1. Staged Tracked files

Jenis 2. File Dilacak Tidak Stage

Ketik 3. File UnTracked UnTracked alias File UnTracked

  • Staged - Mereka yang dipindahkan ke area staging / Ditambahkan ke indeks
  • File yang dilacak - dimodifikasi
  • Tidak dilacak - file baru. Selalu tidak panggung. Jika dipentaskan, itu berarti mereka dilacak.

Apa yang masing-masing perintah lakukan:

  1. git checkout . - HANYA Menghapus File yang Tidak Dilacak HANYA [Tipe 2]

  2. git clean -f - HANYA Menghapus File UnTracked UnTracked [Tipe 3]

  3. git reset --hard - Menghapus file yang dilacak bertahap dan dilacak tidak panggung hanya [tipe 1, tipe 2]

  4. git stash -u - Menghapus semua perubahan [Tipe 1, Tipe 2, Tipe 3]

Kesimpulan:

Jelas bahwa kita dapat menggunakan keduanya

(1) combination of `git clean -f` and `git reset --hard` 

ATAU

(2) `git stash -u`

untuk mencapai hasil yang diinginkan.

Catatan: Menyimpan, karena kata tersebut berarti 'Simpan (sesuatu) dengan aman dan diam-diam di tempat yang ditentukan.' Ini selalu dapat diambil menggunakan git stash pop. Jadi memilih antara dua opsi di atas adalah panggilan pengembang.

Terima kasih Christoph dan Frederik Schøning.

Edit: 03/27

Saya pikir ada baiknya menaruh catatan ' waspada 'git clean -f

git clean -f

Tidak ada jalan untuk kembali. Gunakan -natau --dry-rununtuk melihat pratinjau kerusakan yang akan Anda lakukan.

Jika Anda ingin juga menghapus direktori, jalankan git clean -f -d

Jika Anda hanya ingin menghapus file yang diabaikan, jalankan git clean -f -X

Jika Anda ingin menghapus file yang diabaikan dan juga yang tidak diabaikan, jalankan git clean -f -x

referensi: lebih lanjut tentang git clean: Bagaimana cara menghapus file lokal (tidak terlacak) dari pohon kerja Git saat ini?

Edit: 05/20/15

Membuang semua komit lokal di cabang ini [Menghapus komit lokal]

Untuk membuang semua komitmen lokal pada cabang ini, untuk membuat cabang lokal identik dengan "hulu" cabang ini, jalankan saja git reset --hard @{u}

Referensi: http://sethrobertson.github.io/GitFixUm/fixup.html

atau lakukan git reset --hard origin/master[jika cabang lokal master]

Catatan: 06/12/2015 Ini bukan duplikat dari pertanyaan SO lainnya yang ditandai sebagai duplikat. Pertanyaan ini membahas bagaimana cara menghapus perubahan GIT lokal [menghapus file yang ditambahkan, menghapus perubahan yang ditambahkan ke file yang ada, dll, dan berbagai pendekatan; Di mana di utas SO lainnya hanya membahas cara menghapus komit lokal. Jika Anda menambahkan file, dan Anda ingin menghapusnya sendiri, maka utas SO lainnya tidak membahasnya. Karenanya ini bukan duplikat dari yang lain]

Edit: 06/23/15

Bagaimana cara mengembalikan komit yang sudah didorong ke repositori jarak jauh?

$ git revert ab12cd15

Edit: 09/01/2015

Hapus komit sebelumnya dari cabang lokal dan cabang jarak jauh

Kasus: Anda baru saja melakukan perubahan ke cabang lokal Anda dan segera mendorong ke cabang terpencil, Tiba-tiba menyadari, Oh tidak! Saya tidak butuh perubahan ini. Sekarang lakukan apa?

git reset --hard HEAD~1 [untuk menghapus komit dari cabang lokal]

git push origin HEAD --force[kedua perintah harus dijalankan. Untuk menghapus dari cabang jarak jauh]

Apa cabangnya? Ini adalah cabang yang sedang diperiksa.

Edit 09/08/2015 - Hapus git merge lokal :

Saya berada di mastercabang dan menggabungkan mastercabang dengan cabang yang baru bekerjaphase2

$ git status
# On branch master

$ git merge phase2

$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 8 commits.

T: Bagaimana cara menyingkirkan gabungan ini? Mencoba git reset --hard dan git clean -d -f Keduanya tidak berhasil.

Satu-satunya hal yang berhasil adalah yang di bawah ini:

$ git reset --hard origin/master

atau

$ git reset --hard HEAD~8

atau

$ git reset --hard 9a88396f51e2a068bb7 [sha commit code - ini adalah kode yang ada sebelum semua komitmen gabungan Anda terjadi]

manusia laba-laba
sumber
1
Saya kira utas ini dapat menjawab pertanyaan Anda: stackoverflow.com/questions/1146973/…
Saucier
1
"git stash" akan menghapus semua perubahan yang telah Anda buat.
John Ballinger
1
Ringkasan yang bagus! Saya akan menambahkan kategori file lain: "Ketik 4. File yang diabaikan." git stash -a[atau --semua] juga akan menyimpan file yang diabaikan dan tidak terlacak. git clean -xakan membersihkan file yang diabaikan juga. git clean -Xhanya akan membersihkan file yang diabaikan.
Jerry101
2
@JavaDev Pertanyaan Anda lebih seperti jawaban .. menghargai bahwa Anda terus mengedit dan menyusun semua jawaban.
Bhavuk Mathur
1
terima kasih saya menjalankan semua 4 perintah Anda untuk membalikkan perubahan lokal
Vincent Tang

Jawaban:

505

Semuanya tergantung pada apa yang ingin Anda batalkan / kembalikan. Mulailah dengan membaca posting di tautan Ube . Tetapi untuk mencoba jawaban:

Hard Reset pengaturan pabrik

git reset --hard [HEAD]

sepenuhnya menghapus semua perubahan bertahap dan tidak bertahap untuk file yang dilacak.

Saya menemukan diri saya sering menggunakan pengaturan ulang yang sulit, ketika saya seperti "hanya membatalkan semuanya seperti jika saya telah melakukan kloning lengkap dari remote". Dalam kasus Anda, di mana Anda hanya menginginkan repo Anda yang asli, ini akan berhasil.

Bersih

git clean [-f]

Hapus file yang tidak dilacak.

Untuk menghapus file sementara, tetapi tetap melakukan perubahan bertahap dan tidak dipentaskan untuk file yang sudah dilacak. Sering kali, saya mungkin akan berakhir dengan mengabaikan-aturan alih-alih membersihkan berulang kali - misalnya untuk folder bin / obj dalam proyek C #, yang biasanya Anda ingin kecualikan dari repo Anda untuk menghemat ruang, atau sesuatu seperti itu.

Opsi -f (force) juga akan menghapus file, yang tidak dilacak dan juga diabaikan oleh git meskipun mengabaikan-aturan. Dalam kasus di atas, dengan aturan abaikan untuk tidak pernah melacak folder bin / obj, meskipun folder ini diabaikan oleh git, menggunakan opsi-paksa akan menghapusnya dari sistem file Anda. Saya secara sporadis telah melihat kegunaan untuk ini, misalnya saat scripting deployment, dan Anda ingin membersihkan kode Anda sebelum menggunakan, zip atau apa pun.

Git clean tidak akan menyentuh file, yang sudah dilacak.

Lihat "dot"

git checkout .

Sebenarnya saya belum pernah melihat notasi ini sebelum membaca posting Anda. Saya kesulitan menemukan dokumentasi untuk ini (mungkin seseorang dapat membantu), tetapi dari sedikit bermain-main, sepertinya artinya:

"batalkan semua perubahan di pohon kerja saya".

Yaitu membatalkan perubahan yang tidak bertahap dalam file yang dilacak. Tampaknya tidak menyentuh perubahan yang dipentaskan dan membiarkan file yang tidak dilacak sendirian.

Stashing

Beberapa jawaban menyebutkan menyembunyikan. Seperti kata-kata yang tersirat, Anda mungkin akan menggunakan simpanan ketika Anda berada di tengah-tengah sesuatu (tidak siap untuk komit), dan Anda harus sementara beralih cabang atau entah bagaimana bekerja pada keadaan lain dari kode Anda, kemudian kembali ke "berantakan" meja tulis". Saya tidak melihat ini berlaku untuk pertanyaan Anda, tetapi jelas berguna.

Untuk menyimpulkan

Secara umum, jika Anda yakin telah melakukan dan mungkin mendorong ke perubahan penting jarak jauh, jika Anda hanya bermain-main atau sejenisnya, menggunakan git reset --hard HEADdiikuti oleh git clean -fakan secara pasti membersihkan kode Anda ke negara, itu akan berada di, seandainya itu sudah dikloning dan keluar dari cabang. Sangat penting untuk ditekankan, bahwa pengaturan ulang juga akan menghapus perubahan bertahap, tetapi tidak berkomitmen. Ini akan menghapus semua yang belum dilakukan (kecuali file yang tidak terlacak, dalam hal ini, gunakan clean ).

Semua perintah lain ada untuk memfasilitasi skenario yang lebih kompleks, di mana diperlukan granularity "undoing stuff" :)

Saya merasa, pertanyaan Anda nomor 1 sudah tercakup, tetapi terakhir, untuk menyimpulkan pada # 2: alasan Anda tidak pernah menemukan kebutuhan untuk digunakan git reset --hardadalah bahwa Anda belum pernah melakukan apa pun. Memiliki Anda dipentaskan perubahan, baik git checkout .atau git clean -fakan dikembalikan itu.

Semoga ini mencakup.

Frederik Struck-Schøning
sumber
Terima kasih atas alasan penggunaannya git reset --hard. Aku mencoba keluar, dan ya .. file-file ditambahkan ke indeks (staging) telah dihapus hanya setelah git reset --hard, dan saya menganggap secara default git reset --hardadalah git reset --hard head. Tautan ini juga membantu gitready.com/beginner/2009/01/18/the-staging-area.html
spiderman
Saya meningkatkan jawaban saya mengapa saya pikir git stash -upaling masuk akal di sini.
Christoph
2
Terima kasih kalian berdua. Saya telah merangkum jawabannya dan menyematkan pertanyaan saya. Christoph memberi tahu saya apa yang git stash -udilakukan dan bagaimana menghapusnya, tetapi Frederik memberi tahu saya pengaturan ulang dengan keras dan menggunakan kombinasi dari git reset --harddan git clean -f, dan mengapa tidak stashdisukai dalam beberapa skenario. Sekarang Tolong bantu saya dalam memilih mana yang harus saya tandai sebagai Jawaban :), keduanya adalah jawaban saya.
spiderman
3
.adalah pathspec yang merujuk ke direktori kerja saat ini, yang mungkin merupakan akar dari repo. Dari git-scm.com: git checkout [<tree-ish>] [--] <pathspec>…memperbarui jalur yang dinamai di pohon yang berfungsi dari file indeks atau dari yang bernama <tree-ish>.
Jerry101
3
Tidak pernah cukup menekankan bahwa keduanya git reset --harddan git clean -dfxsejenisnya merusak . Bagaimanapun, tolong perbaiki huruf kecil headdi jawabannya, itu harus huruf besar HEADatau tidak ada sama sekali.
Pavel Šimerda
25

Alasan untuk menambahkan jawaban saat ini:

Sejauh ini saya menambahkan kesimpulan dan 'jawaban' untuk pertanyaan awal saya sendiri, membuat pertanyaan itu sangat panjang, karenanya pindah ke jawaban yang terpisah.

Saya juga menambahkan lebih sering menggunakan perintah git yang membantu saya di git, untuk membantu orang lain juga.

Pada dasarnya untuk membersihkan semua komit lokal $ git reset --harddan $ git clean -d -f


Langkah pertama sebelum Anda melakukan komit adalah mengkonfigurasi nama pengguna dan email yang muncul bersama dengan komit Anda.

# Atur nama yang ingin Anda lampirkan pada transaksi komit Anda

$ git config --global user.name "[name]"

# Setel email yang ingin Anda tambahkan ke transaksi komit Anda

$ git config --global user.email "[email address]"

#Daftar konfigurasi global

$ git config --list

#Daftar URL jarak jauh

$ git remote show origin

# periksa status

git status

#Daftar semua cabang lokal dan jarak jauh

git branch -a

#membuat cabang lokal baru dan mulai mengerjakan cabang ini

git checkout -b "branchname" 

atau, dapat dilakukan sebagai proses dua langkah

buat cabang: git branch branchname kerjakan cabang ini:git checkout branchname

#komit perubahan lokal [proses dua langkah: - Tambahkan file ke indeks, itu berarti menambah area pementasan. Kemudian komit file yang ada di area pementasan ini]

git add <path to file>

git commit -m "commit message"

#checkout beberapa cabang lokal lainnya

git checkout "local branch name"

#hapus semua perubahan di cabang lokal [Misalkan Anda membuat beberapa perubahan di cabang lokal seperti menambahkan file baru atau memodifikasi file yang ada, atau membuat komit lokal, tetapi tidak lagi memerlukan itu] git clean -d -fdan git reset --hard [bersihkan semua perubahan lokal yang dilakukan pada cabang lokal kecuali jika komit lokal]

git stash -u juga menghapus semua perubahan

Catatan: Jelas bahwa kita dapat menggunakan (1) kombinasi dari git clean –d –fdan git reset --hard ATAU (2) git stash -u untuk mencapai hasil yang diinginkan.

Catatan 1: Menyimpan, karena kata tersebut berarti 'Simpan (sesuatu) dengan aman dan diam-diam di tempat tertentu.' Ini selalu dapat diambil menggunakan pop git stash. Jadi memilih antara dua opsi di atas adalah panggilan pengembang.

Catatan 2: git reset --hardakan menghapus perubahan direktori kerja. Pastikan untuk menyembunyikan perubahan lokal yang ingin Anda pertahankan sebelum menjalankan perintah ini.

# Beralih ke cabang master dan pastikan Anda up to date.

git checkout master

git fetch [ini mungkin diperlukan (tergantung pada konfigurasi git Anda) untuk menerima pembaruan pada asal / master]

git pull

# Gabungkan cabang fitur ke cabang master.

git merge feature_branch

# Reset cabang master ke kondisi asal.

git reset origin/master

# Secara tidak sengaja menghapus file dari lokal, bagaimana cara mengambilnya kembali? Lakukan git statusuntuk mendapatkan filepath lengkap dari sumber yang dihapus

git checkout branchname <file path name>

itu dia!

#Merge cabang master dengan someotherbranch

git checkout master
git merge someotherbranchname

cabang lokal #rename

git branch -m old-branch-name new-branch-name

#hapus cabang lokal

git branch -D branch-name

Hapus cabang jauh

git push origin --delete branchname

atau

git push origin :branch-name

#revert komit yang sudah didorong ke repositori jarak jauh

git revert hgytyz4567

# cabang dari komit sebelumnya menggunakan GIT

git branch branchname <sha1-of-commit>

#Ubah pesan komit dari komit terbaru yang telah didorong ke jarak jauh

git commit --amend -m "new commit message"
git push --force origin <branch-name>

# Membuang semua komit lokal di cabang ini [Menghapus komit lokal]

Untuk membuang semua komitmen lokal pada cabang ini, untuk membuat cabang lokal identik dengan "hulu" cabang ini, jalankan saja

git reset --hard @{u}

Referensi: http://sethrobertson.github.io/GitFixUm/fixup.html atau lakukan git reset --hard origin/master[jika cabang lokal adalah master]

# Kembalikan komit yang sudah didorong ke repositori jarak jauh?

$ git revert ab12cd15

# Hapus komit sebelumnya dari cabang lokal dan cabang jarak jauh

Use-Case: Anda baru saja melakukan perubahan ke cabang lokal Anda dan segera mendorong ke cabang terpencil, Tiba-tiba menyadari, Oh tidak! Saya tidak butuh perubahan ini. Sekarang lakukan apa?

git reset --hard HEAD~1[untuk menghapus komit dari cabang lokal. 1 menunjukkan SATU komit yang Anda buat]

git push origin HEAD --force[kedua perintah harus dijalankan. Untuk menghapus dari cabang jarak jauh]. Cabang yang saat ini diperiksa akan disebut sebagai cabang tempat Anda melakukan operasi ini.

# Hapus beberapa komit terbaru dari repo lokal dan jarak jauh dan pertahankan komit yang Anda inginkan. (semacam mengembalikan komit dari lokal dan jarak jauh)

Mari kita asumsikan Anda memiliki 3 komitmen yang Anda dorong ke cabang jauh bernama ' develop'

commitid-1 done at 9am
commitid-2 done at 10am
commitid-3 done at 11am. // latest commit. HEAD is current here.

Untuk kembali ke komit lama (untuk mengubah status cabang)

git log --oneline --decorate --graph // untuk melihat semua komid Anda

git clean -d -f // bersihkan setiap perubahan lokal

git reset --hard commitid-1 // secara lokal kembali ke komid ini

git push -u origin +develop// dorong status ini ke jarak jauh. + untuk melakukan push paksa

# Hapus git merge lokal: Kasus: Saya berada di cabang master dan menggabungkan cabang master dengan fase2 cabang yang baru berfungsi

$ git status

Pada master cabang

$ git merge phase2 $ git status

Pada master cabang

Cabang Anda di depan 'asal / master' oleh 8 komit.

T: Bagaimana cara menyingkirkan git git lokal ini? Mencoba git reset --harddan git clean -d -fKeduanya tidak berhasil. Satu-satunya hal yang berhasil adalah yang di bawah ini:

reset $ git --barang asli / master

atau

reset $ git --hard HEAD ~ 8

atau

$ git reset --hard 9a88396f51e2a068bb7 [sha commit code - ini adalah kode yang ada sebelum semua komitmen gabungan Anda terjadi]

#membuat file gitignore

touch .gitignore // buat file di pengguna mac atau unix

sampel .gitignore konten:

.project
*.py
.settings

Tautan referensi ke lembar contekan GIT: https://services.github.com/on-demand/downloads/github-git-cheat-sheet.pdf

manusia laba-laba
sumber
1
Perintah Anda untuk Menghapus Cabang Jarak Jauh mungkin bukan yang terbaik . Anda menggunakan git push origin :branch-namenamun saya sarankan menggunakangit push origin --delete branchname
vibs2006
Setuju, saya memperbarui dengan saran Anda, terima kasih @ vibs2006
spiderman
21

Seperti halnya semua yang ada di git, ada banyak cara untuk melakukannya. Dua perintah yang Anda gunakan adalah salah satu cara untuk melakukannya. Hal lain yang bisa Anda lakukan adalah menyembunyikannya git stash -u. The -umemastikan bahwa baru ditambahkan file (tidak terlacak) juga disertakan.

Hal yang berguna tentang git stash -uitu

  1. itu mungkin perintah tunggal (hanya?) yang paling sederhana untuk mencapai tujuan Anda
  2. jika Anda berubah pikiran setelah itu Anda mendapatkan semua pekerjaan Anda kembali git stash pop(itu seperti menghapus email di gmail di mana Anda bisa membatalkan jika Anda berubah pikiran setelah itu)

Pada pertanyaan Anda yang lain, git reset --hardtidak akan menghapus file yang tidak terlacak sehingga Anda masih memerlukannya git clean -f. Tapi git stash -umungkin yang paling nyaman.

Christoph
sumber
git reset --hardmemang tidak akan menghapus file yang tidak dilacak , tetapi akan menghapus perubahan yang tidak terlacak, yaitu perubahan pada file, yang sudah ada dalam indeks. Saya yakin itulah yang Anda maksudkan :)
Frederik Struck-Schøning
Ketika saya digunakan git stash -u, saya melihat respons ini dari git bash. "Direktori kerja tersimpan dan indeks negara WIP pada {branchname}. Mungkin ini disimpan adalah apa yang bisa kita ambil menggunakan git stash pop.
spiderman
Terima kasih kalian berdua. Saya telah merangkum jawabannya dan menyematkan pertanyaan saya. Christoph memberi tahu saya apa yang git stash -udilakukan dan bagaimana menghapusnya, tetapi Frederik memberi tahu saya pengaturan ulang dengan keras dan menggunakan kombinasi dari git reset --harddan git clean -f, dan mengapa tidak stashdisukai dalam beberapa skenario. Sekarang Tolong bantu saya dalam memilih mana yang harus saya tandai sebagai Jawaban :), keduanya adalah jawaban saya.
spiderman
tetapi bagaimana jika ada file yang saya tambahkan ke repositori saya yang tidak ingin saya lacak? hanya di repo saya. Jika saya menambahkannya ke daftar abaikan maka saya memiliki file .ignore untuk dikomit yang akan mempengaruhi semua orang juga.
user20358
7

1. Saat Anda tidak ingin menyimpan perubahan lokal sama sekali.

git reset --hard

Perintah ini akan sepenuhnya menghapus semua perubahan lokal dari repositori lokal Anda. Ini adalah cara terbaik untuk menghindari konflik selama perintah tarik, hanya jika Anda tidak ingin menyimpan perubahan lokal sama sekali.

2. Saat Anda ingin menyimpan perubahan lokal Anda

Jika Anda ingin menarik perubahan baru dari jarak jauh dan ingin mengabaikan perubahan lokal selama tarik ini,

git stash

Ini akan menyembunyikan semua perubahan lokal, sekarang Anda dapat menarik perubahan jarak jauh,

git pull

Sekarang, Anda dapat mengembalikan perubahan lokal Anda dengan,

git stash pop
Actung
sumber
1
git reset --hardtidak menghapus semua perubahan lokal. Itu hanya menghapus modifikasi. Jika Anda ingin menghapus add, maka Anda juga harusgit clean -fd
John Henckel
4

Menggunakan:

git checkout -- <file>

Untuk membuang perubahan di direktori kerja.

Tadas Stasiulionis
sumber
4

Saya pikir git memiliki satu hal yang tidak terdokumentasi dengan jelas. Saya pikir itu sebenarnya diabaikan.

git checkout .

Man, kamu menyelamatkan hariku. Saya selalu memiliki hal-hal yang ingin saya coba menggunakan kode yang dimodifikasi. Tetapi hal-hal yang kadang-kadang berakhir mengacaukan kode yang dimodifikasi, menambahkan file baru yang tidak terlacak dll. Jadi yang ingin saya lakukan adalah, tahap apa yang saya inginkan, lakukan hal-hal yang berantakan, kemudian bersihkan dengan cepat dan lakukan jika saya senang.

Ada git clean -fd berfungsi baik untuk file yang tidak dilacak.

Maka git resetcukup menghapus dipentaskan, tetapi git checkoutagak terlalu rumit. Menentukan file satu per satu atau menggunakan direktori tidak selalu ideal. Terkadang file yang diubah yang ingin saya singkirkan berada dalam direktori yang ingin saya simpan. Saya berharap untuk satu perintah ini yang hanya menghapus perubahan yang tidak dipentaskan dan Anda di sini Terima kasih.

Tapi saya pikir mereka seharusnya memiliki git checkouttanpa opsi, menghapus semua perubahan yang tidak dipentaskan dan tidak menyentuh yang dipentaskan. Ini agak modular dan intuitif. Lebih seperti apa git reset. git cleanjuga harus melakukan hal yang sama.

Emmanuel Mahuni
sumber
2

Cara terbaik adalah memeriksa perubahannya.

Mengubah file pom.xml dalam sebuah proyek bernama nama-proyek Anda dapat melakukannya:

git status

# modified:   project-name/pom.xml

git checkout project-name/pom.xml
git checkout master

# Checking out files: 100% (491/491), done.
# Branch master set up to track remote branch master from origin.
# Switched to a new branch 'master'
bpedroso
sumber
2

Untuk membuang semua yang saya suka simpanan dan jatuhkan simpanan itu, ini adalah cara tercepat untuk membuang semua, terutama jika Anda bekerja di antara beberapa repo.

Ini akan menyimpan semua perubahan pada {0}kunci dan langsung membatalkannya{0}

git stash && git stash drop

Tatarin
sumber
1

Pertama-tama, periksa apakah perubahan penting Anda berhasil atau tidak dengan:

$ git status

daripada mencoba

$ git reset --hard

itu akan mengatur ulang cabang Anda ke default

tetapi jika Anda hanya perlu membatalkan:

$ edit (1) $ git tambahkan frotz.c filfre.c $ mailx (2) $ git reset
(3) $ git pull git: //info.example.com/ nitfol


Baca lebih lanjut >> https://git-scm.com/docs/git-reset

Rizo
sumber
Catatan samping: reset --hard adalah perintah berbahaya ini akan menghapus semua perubahan dan tidak dapat dibatalkan. Pengguna harus sadar ketika menggunakan reset keras.
danglingpointer