Mengedit pesan commit git di GitHub

173

Apakah ada cara mengedit pesan komit online di GitHub.com setelah pengajuan?

Dari baris perintah, seseorang dapat melakukannya

git commit --amend -m "New commit message"

seperti yang disarankan dengan benar dalam pertanyaan lain .

Mencoba git pulldan kemudian git pushberhasil (tanpa komitmen lain telah mengganggu sementara itu).

Tetapi dapatkah itu dilakukan melalui GitHubsitus web?

PNS
sumber
Silakan lihat jawaban @ DanGreen-Leipciger meskipun bukan jawaban yang diterima.
RBT

Jawaban:

101

Tidak, ini tidak mungkin secara langsung. Hash untuk setiap commit Git juga dihitung berdasarkan pesan commit. Ketika Anda mengubah pesan komit, Anda mengubah hash komit. Jika Anda ingin menekan komit itu, Anda harus memaksa dorongan itu (git push -f). Tetapi jika sudah ada orang yang menarik komit lama Anda dan memulai pekerjaan berdasarkan komit itu, ia harus mengubah pekerjaannya menjadi komit baru Anda.

dunni
sumber
Saya juga bisa melakukan git pull dan kemudian git push dan berhasil. Namun ternyata tidak ada cara online.
PNS
Masih tidak memungkinkan pada 5 April 2016
bigT
Dan saya kira itu tidak akan menjadi prioritas tinggi, karena Anda akan mengubah riwayat komit dari cabang yang sudah diterbitkan, yang tidak boleh Anda lakukan (kecuali jika Anda yakin 200%, bahwa tidak ada orang lain yang memiliki cabang ini di mesin lokalnya).
dunni
Ini hanya setengah benar. Memang benar, tetapi hanya dengan asumsi. Jawabannya akan lebih baik jika dikombinasikan dengan yang dari @DanGreen (di bawah). Itu tidak "secara langsung mungkin", dan tentu saja ia datang dengan peringatan sebelumnya (yaitu: "Anda harus 'tidak pernah' melakukan ini ... [kecuali ketika Anda yakin ingin]]") - tetapi hanya mengatakan ini tidak mungkin, ketika secara teknis memungkinkan, adalah jawaban yang tidak lengkap.
Bane
1
OP bertanya, apakah mungkin untuk melakukannya secara online di situs web Github. AFAIK ini masih belum memungkinkan. Jadi jawaban saya valid, dan jawaban Dan Green hanya menangani cara melakukannya secara lokal, bukan di situs web Githubs.
dunni
145

Instruksi GitHub untuk melakukan ini:

  1. Pada baris perintah, navigasikan ke repositori yang berisi komit yang ingin Anda ubah.
  2. Ketik git commit --amenddan tekan Enter.
  3. Di editor teks Anda, edit pesan komit dan simpan komit.
  4. Gunakan git push --force example-branchperintah untuk memaksa mendorong komit lama.

Sumber: https://help.github.com/articles/changing-a-commit-message/

Dan Green-Leipciger
sumber
11
HATI-HATI! Perbedaan antara menggunakan <git commit --amend> & <Enter>, dan <git commit --amend -m "pesan komit baru">, adalah bahwa dalam kasus pertama Anda mengedit pesan komit Anda dalam editor teks & pada tanggal 2 Anda menggantinya dengan "pesan komit baru". Jika Anda memaksakan dorongan ini akan menggantikan komit di remote Anda. Ini TIDAK menyelesaikan masalah bahwa jika orang lain di tim Anda telah menarik komit sebelumnya Anda sekarang memiliki sejarah yang berbeda (termasuk komit yang berbeda) pada mesin yang berbeda. Jika Anda tahu tidak ada yang menarik komitmen Anda, ini aman. Baca sumber Dan diposting
TMin
7
git commit --amendselalu ada. Anda juga menjadi bingung antara git (yang merupakan alat baris perintah sumber terbuka) dan Github (yang merupakan perusahaan penyedia hosting sumber online).
vinyll
1
OP bertanya tentang GitHub, dan secara khusus tentang setelah komit telah didorong ke server mereka. Itu adalah instruksi GitHub untuk melakukan apa yang diminta OP.
Dan Green-Leipciger
3
@ DanGreen-Leipciger - yeah, tapi ini tidak dilakukan di situs web itu sendiri, itu dilakukan menggunakan baris perintah. Saya rasa PNS ingin melakukan itu dari dalam antarmuka web.
PhistucK
2
OP bertanya bagaimana melakukannya dengan GitHub secara khusus, ini adalah bagaimana melakukannya dengan GitHub secara khusus.
Dan Green-Leipciger
30

Anda perlu git push -fmengasumsikan bahwa tidak ada yang pernah menarik komit sebelumnya. Waspadalah, Anda mengubah sejarah.

tiga
sumber
3

Tidak, karena pesan komit terkait dengan komit SHA / hash, dan jika kita mengubahnya komit SHA juga berubah. Cara saya menggunakan adalah membuat komentar pada komit itu. Saya tidak bisa berpikir sebaliknya.

Prabowo Murti
sumber
2

Untuk pengguna intellij: Jika Anda ingin membuat perubahan dengan cara interaktif untuk komit sebelumnya, yang tidak didorong ikuti langkah-langkah di bawah ini di Intellij :

  • Pilih Kontrol Versi
  • Pilih Log
  • Klik kanan komit yang ingin Anda ubah komentar
  • Klik reword
  • Selesai

Semoga ini bisa membantu

Saurabh Valsangkar
sumber
0

Saya menghadapi masalah yang sama.

Lihat di github Anda untuk cabang tertentu dan Anda akan mengetahui id komit dari komit pertama di cabang itu. lakukan rebase untuk itu:

git rebase -i

Editor akan terbuka. Lakukan lacak komit Anda dari UI github dan buka editor dan ubah pesan-pesannya.

Priya Jain
sumber