Berikut adalah langkah-langkah untuk mengedit pesan komit dari komit sebelumnya ( yang bukan komit terbaru ) menggunakan SourceTree untuk Windows versi 1.5.2.0 :
Langkah 1
Pilih komit segera sebelum komit yang ingin Anda edit. Misalnya, jika saya ingin mengedit komit dengan pesan "FOOBAR!" maka saya perlu memilih komit yang datang tepat sebelum itu:
Langkah 2
Klik kanan pada komit yang dipilih dan klik Rebase children...interactively
:
Langkah 3
Pilih komit yang ingin Anda edit, lalu klik Edit Message
di bagian bawah. Dalam hal ini, saya memilih komit dengan pesan "FOOBAR!":
Langkah 4
Edit pesan komit, lalu klik OK
. Dalam contoh saya, saya telah menambahkan "SHAZBOT! SKADOOSH!"
Langkah 5
Ketika Anda kembali ke jendela rebase interaktif, klik OK
untuk menyelesaikan rebase:
Langkah 6
Pada titik ini, Anda perlu mendorong-paksa perubahan baru Anda karena Anda telah melakukan rebed terhadap komitmen yang sudah Anda dorong. Namun, SourceTree untuk Windows versi 1.5.2.0 saat ini tidak memungkinkan Anda untuk memaksa-paksa melalui GUI, jadi Anda harus menggunakan Git dari baris perintah untuk melakukan itu.
Klik Terminal
dari GUI untuk membuka terminal.
Langkah 7
Dari terminal force-push dengan perintah berikut,
git push origin <branch> -f
di mana <branch>
nama cabang yang ingin Anda tekan, dan -f
artinya untuk memaksa push. Dorongan paksa akan menimpa komit Anda pada repo jarak jauh Anda, tetapi tidak apa-apa dalam kasus Anda karena Anda mengatakan bahwa Anda tidak membagikan repo Anda dengan orang lain.
Itu dia! Kamu sudah selesai!
Pada Versi 1.9.6.1. Untuk komit UnPushed.
sumber
Jika pesan komentar menyertakan karakter non-Inggris , menggunakan metode yang disediakan oleh user456814, karakter tersebut akan diganti dengan tanda tanya. (diuji di bawah sourcetree Ver2.5.5.0)
Jadi saya harus menggunakan metode berikut.
PERHATIAN : jika komit telah ditarik oleh anggota lain, perubahan di bawah ini dapat menyebabkan kekacauan bagi mereka.
Langkah 1 : Pada jendela utama sourcetree, cari tab repo Anda, dan klik " terminal " tombol untuk membuka perintah git konsol.
Langkah2 :
[Situasi A] : target komit adalah yang terbaru.
1) Di konsol perintah git, masukan
2) Jika komit target telah didorong ke jarak jauh, Anda harus mendorong lagi dengan paksa. Di konsol perintah git, masukan
[Situasi B] : target komit bukan yang terbaru.
1) Di konsol perintah git, masukan
Hal ini untuk squash terbaru n komit. mis. jika Anda ingin mengedit pesan sebelum yang terakhir, n adalah 2. Perintah ini akan membuka jendela vi, kata pertama dari setiap baris adalah " pick ", dan Anda mengubah "pick" menjadi " reword " untuk baris tersebut Anda ingin mengedit. Kemudian, masukan
:wq
untuk menyimpan & keluar dari jendela vi itu. Sekarang, jendela vi baru akan terbuka, di jendela ini Anda memasukkan pesan baru Anda. Juga digunakan:wq
untuk menyimpan & keluar.2) Jika komit target telah didorong ke jarak jauh, Anda harus mendorong lagi dengan paksa. Di konsol perintah git, masukan
Akhirnya : Di jendela utama sourcetree, Tekan
F5
untuk menyegarkan.sumber
Memperbarui
Catatan: jawaban ini awalnya ditulis berkaitan dengan versi SourceTree untuk Windows yang lebih lama, dan sekarang kedaluwarsa.
Lihat jawaban baru saya untuk versi SourceTree untuk Windows saat ini, 1.5.2.0 . Saya meninggalkan jawaban ini untuk tujuan historis.
Jawaban Asli
Mengenai Git GUI, tidak, mereka tidak mencakup semua fungsi Git . Mereka bahkan tidak mendekati . Saya sarankan Anda memeriksa salah satu jawaban di Bagaimana cara mengedit pesan komit yang salah di Git? , Git cukup fleksibel sehingga ada beberapa solusi ... dari baris perintah.
SourceTree mungkin benar-benar datang dengan shell bash msysgit, atau mungkin dapat menggunakan shell perintah Windows standar. Apa pun itu, Anda membukanya dari SourceTree dengan mengklik tombol Terminal:
Anda mengatur terminal mana yang digunakan SourceTree (bash atau Windows) di sini:
Salah satu cara untuk memecahkan masalah di SourceTree
Yang sedang berkata, inilah salah satu cara Anda dapat melakukannya di SourceTree. Karena Anda menyebutkan dalam komentar bahwa Anda tidak keberatan "kembali ke komit yang salah" (yang saya anggap benar-benar Anda maksud mengatur ulang, yang merupakan operasi yang berbeda di Git), maka berikut adalah langkah-langkahnya:
Reset current branch to this commit
, dan memilih opsi hard reset dari drop down.Mengenai komentar ini :
Apakah ini berarti Anda satu-satunya orang yang mengerjakan repo? Ini penting karena tidak sepele untuk mengubah riwayat repo (seperti dengan mengubah komit) tanpa menimbulkan masalah bagi kolaborator Anda. Namun, dengan asumsi bahwa Anda adalah satu-satunya orang yang mengerjakan repo, maka hal berikutnya yang ingin Anda lakukan adalah memaksa mendorong riwayat Anda yang berubah ke kendali jarak jauh.
Perlu diketahui, bahwa karena Anda melakukan reset keras ke komit yang salah, maka memaksa mendorong menyebabkan Anda kehilangan semua pekerjaan yang datang setelah itu sebelumnya. Jika tidak apa-apa, maka Anda mungkin perlu menggunakan perintah berikut di baris perintah untuk melakukan push paksa, karena saya tidak bisa menemukan opsi untuk melakukannya di SourceTree:
Ini juga mengasumsikan bahwa BitBucket akan memungkinkan Anda untuk memaksa mendorong repo.
Anda harus benar-benar belajar bagaimana menggunakan Git dari baris perintah, bagaimanapun, itu akan membuat Anda lebih mahir dalam Git. # ProTip, gunakan msysgit dan nyalakan mode Edit Cepat di properti terminal, sehingga Anda dapat mengklik dua kali untuk menyorot sebaris teks, klik kanan untuk menyalin, dan klik kanan lagi untuk menempelkan. Cukup cepat.
sumber