Mendorong komit kosong ke jarak jauh

242

Saya telah mendorong satu komit ke jarak jauh tetapi sekarang saya menyadari bahwa pesan komit tidak benar. Saya ingin mengubah pesan komit tapi AFAIK itu tidak mungkin. Jadi saya memutuskan untuk membuat komit kosong dengan pesan yang benar:

git commit --allow-empty

Adakah kerugian / konsekuensi dari mendorong komitmen kosong? Apakah ada masalah yang mungkin saya hadapi di masa depan karena komit kosong ini ??

mrutyunjay
sumber
1
Lihat pertanyaan serupa ini stackoverflow.com/questions/6218199/…
Montaro

Jawaban:

80

Anda tidak akan menghadapi konsekuensi yang mengerikan, hanya sejarah akan terlihat membingungkan.

Anda dapat mengubah pesan komit dengan melakukan

git commit --amend
git push --force-with-lease # (as opposed to --force, it doesn't overwrite others' work)

TETAPI ini akan menimpa sejarah jarak jauh dengan milik Anda, yang berarti bahwa jika ada yang menarik repo itu sementara itu, orang ini akan sangat marah pada Anda ...

Lakukan saja jika Anda adalah satu-satunya orang yang mengakses repo.

Gabriele Petronella
sumber
5
Ya itu sebabnya saya lebih suka mendorong komit kosong
mrutyunjay
4
@ Mrutyunjay jika ada kesempatan orang lain menarik repo, maka ya, saya pikir itu pilihan yang lebih baik.
Gabriele Petronella
1
Anda tidak akan menghadapi konsekuensi yang mengerikan, hanya sejarah akan terlihat membingungkan - konsekuensi yang mengerikan! ;-)
Alois Mahdal
3
Lebih suka --force-with-leasemenghindari kehilangan pekerjaan kolaborator.
Kenzo
22

mendorong komit, apakah kosong atau tidak, menyebabkan kait git akhirnya dipicu. Ini dapat melakukan apa-apa atau memiliki konsekuensi yang menghancurkan dunia.

xor
sumber
9
Ini adalah pengamatan yang diremehkan. Ya, komit kosong mungkin lebih unggul daripada amit komit yang didorong, tetapi komit kosong tidak dapat dianggap bebas efek samping jika mungkin ada kaitan di tempatnya.
wintermute92
18

Apakah ada kerugian / konsekuensi dari mendorong komitmen kosong?

Selain dari kebingungan ekstrim seseorang mungkin mengerti mengapa ada banyak komit tanpa konten di dalamnya pada master, tidak juga.

Anda dapat mengubah komit yang Anda tekan ke jarak jauh, tetapi sha1 dari komit (pada dasarnya itu adalah nomor id) akan berubah secara permanen, yang mengubah pohon sumber - Anda kemudian harus melakukan git push -fkembali ke jarak jauh.

yamafontes
sumber
15

Selama Anda jelas merujuk komit lain dari komit kosong itu harus baik-baik saja. Sesuatu seperti:

Commit message errata for [commit sha1]

[new commit message]

Seperti yang telah ditunjukkan orang lain, ini seringkali lebih baik daripada memaksa mendorong komit yang dikoreksi.

153957
sumber
12
 $ git commit --allow-empty -m "Trigger Build"
sarjit07
sumber
2
Sementara kode ini dapat menyelesaikan pertanyaan, termasuk penjelasan tentang bagaimana dan mengapa ini menyelesaikan masalah akan sangat membantu untuk meningkatkan kualitas posting Anda, dan mungkin menghasilkan lebih banyak suara. Ingatlah bahwa Anda menjawab pertanyaan untuk pembaca di masa depan, bukan hanya orang yang bertanya sekarang. Harap edit jawaban Anda untuk menambahkan penjelasan dan berikan indikasi tentang batasan dan asumsi apa yang berlaku. Dari Ulasan
double-beep
-1

Bagaimana dengan ini;

 git commit --allow-empty-message -m ''
David Okwii
sumber
Anda cukup menghapus pesan dan itu membuat lebih buruk jika komit akan kosong, setidaknya harus ada pesan mengapa.
Eric Bishard