Bagaimana cara saya mengedit pesan komit yang salah dengan TortoiseGit?

Jawaban:

160

Jika komit adalah kepala cabang saat ini, itu mudah.

  1. Menu konteks -> Git Commit
  2. Centang kotak "Ubah Komit Terakhir"
  3. Perbaiki pesan komit Anda
  4. baik

Jika komit adalah kepala cabang lain, beralihlah ke cabang itu terlebih dahulu.

  1. Menu konteks -> TortoiseGit -> Switch / Checkout
  2. Pilih nama cabang
  3. baik
  4. Ikuti 1-4 langkah di atas untuk mengubah pesan commit

Jika komit ada di tengah tanpa penggabungan antara kepala, Anda perlu mengatur ulang, mengubah dan memilih ceri

  1. Menu konteks -> TortoiseGit -> Log
  2. Pilih komit -> menu Konteks -> Reset
  3. Hard Reset ( ini akan membuang semua pekerjaan yang terdapat dalam komit di atas komit yang dipilih serta semua perubahan yang tidak berkomitmen di direktori kerja )
  4. baik
  5. Ikuti 1-4 langkah di atas untuk mengubah pesan commit
  6. Pilih dari satu kepala ke satu komit di atasnya -> Menu konteks -> Pilih ceri
  7. Terus
berbaris
sumber
12
Saya sangat merindukan "Edit pesan log" dari TortoiseSVN. Adakah kemungkinan mereka akan menambahkan fitur seperti itu?
Benoit Blanchon
3
Saya tersesat di langkah 6, apa yang Anda maksud dengan "Pilih dari satu kepala ke satu komit di atasnya" apakah itu opsi dalam menu konteks?
Flethuseo
1
kalah pada langkah 6 juga. tidak ada opsi cherry pick di mana pun, dan saya tidak dapat melihat komit di atas dalam hal apa pun (hanya mengatakan perubahan dir kerja, yang sebenarnya tidak ada)
Robert Ivanc
13
Turunkan suara karena menurut saya saran dalam kasus di mana komit berada di tengah telah menyebabkan saya membuang perubahan kode saya hingga komit itu, yang merupakan pekerjaan beberapa minggu.
Samuel
8
PERINGATAN: Gunakan "Buat cabang pada versi ini" untuk menyetel nama cabang sementara sebelum menyetel ulang ke komit yang ingin Anda ubah. Jika tidak, Anda berisiko kehilangan semua komitmen di atas titik ini. (Jika ini sudah terjadi pada Anda, git reflogakan membantu Anda untuk mengambilnya kembali).
Steve Pitchers
19

Untuk kasus ketika komit ada di tengah, saya sangat menyarankan untuk tidak mengikuti instruksi yang diberikan oleh linquize, lihat komentar di bawah jawabannya untuk alasannya.

  1. Anda bisa menggunakan baris perintah git dengan TortoiseGit dan tidak akan menimbulkan masalah: Dapatkah saya menggunakan alat baris perintah Git dan TortoiseGit secara bersamaan? .

  2. Video youtube ini menjelaskannya dengan sangat baik: http://youtu.be/4YjKY0u9Z6I . Pada dasarnya gunakan git rebase -i dan kemudian cukup "reword" pesan komit.

Pembaruan: Saya yakin Anda bisa mendapatkan kembali komit yang hilang dari hard reset yang disarankan oleh linquize, lihat jawaban Wayne di sini: Bagaimana saya bisa menyusun ulang / menggabungkan komit menggunakan Git rebase? .

Samuel
sumber
7
Sepakat. Saya membutuhkan waktu yang sangat lama untuk mempelajari cara menggunakan, SVN sangat sederhana. Konsep git sederhana, tetapi penggunaannya tidak.
Samuel
TortoiseGit juga menawarkan rebase interaktif, Anda tidak perlu menggunakan baris perintah untuk ini.
Peter
13

Saya akan mengatakan metode terbaik untuk mengubah pesan komit apa pun adalah menggunakan force rebaseopsi di tortoisegit.

Lihat jawaban ini tentang Bagaimana Menyusun Ulang Komitmen (rebase) dengan TortoiseGit . Metode yang sama dapat digunakan untuk mengedit pesan komit.

  • Saat Anda berada di dialog rebase, klik kanan pada komit yang ingin Anda edit dan pilih Editopsi. Anda dapat memilih untuk mengedit beberapa komit.
  • Klik Start Rebasetombol tersebut.
  • Rebase akan berhenti pada komit yang telah Anda tandai Edit
  • Klik Commit Messagetab di bagian bawah dan edit pesannya
  • Klik Amendtombol untuk melanjutkan
geoji
sumber