Git memperlakukan baris yang dimulai dengan #
sebagai baris komentar ketika melakukan. ini sangat menjengkelkan ketika bekerja dengan sistem pelacakan tiket, dan mencoba menulis nomor tiket di awal baris, misalnya
#123 salt hashed passwords
git hanya akan menghapus baris dari pesan komit. apakah ada cara untuk menghindari hash? saya mencoba \
dan !
, tetapi tidak ada yang berhasil. spasi putih sebelumnya #
dilestarikan, jadi itu juga bukan solusi yang baik untuk masalah tersebut.
git
commit
ticket-system
ticket-tracking
rajutan
sumber
sumber
git config core.commentchar
memungkinkan untuk mengkonfigurasi karakter komentar itu. Lihat jawaban saya di bawah inigit commit --cleanup=scissors
akan lebih fleksibel. Lihat detail dalam jawaban sayaJawaban:
Perilaku ini adalah bagian dari perilaku
git commit
'pembersihan' default. Jika Anda ingin menjaga garis mulai dari#
Anda dapat menggunakan mode pembersihan alternatif.Misalnya
Jika Anda melakukan ini, Anda harus berhati-hati untuk menghapus semua
#
baris yang Anda tidak ingin muncul di komit.sumber
commit.template
variabel konfigurasi git.git commit --amend --cleanup=whitespace
Perhatikan bahwa, sejak git1.8.2 (Februari 2013) , Anda dapat menggunakan karakter yang berbeda dari '
#
' untuk baris yang dikomentari dalam pesan komit.Itu memungkinkan Anda menggunakan '
#
' untuk referensi nomor bug Anda.Secara teori, Anda bisa meletakkan
core.commentChar
kata (banyak karakter), tetapi git 2.0.x / 2.1 akan lebih ketat (Q3 2014).Lihat commit 50b54fd oleh Nguyễn Thái Ngọc Duy (
pclouds
) :config: ketat pada core.commentChar
git 2.0.x / 2.1 (Q3 2014) akan menambahkan pilihan otomatis untuk
core.commentChar
:Lihat commit 84c9dc2
Daftar karakter kandidat untuk "otomatis" adalah:
Itu berarti perintah seperti
git commit -m '#1 fixed issue'
akan secara otomatis mengalihkan commentChar ke ';
', karena '#
' digunakan dalam pesan komit.sumber
$ git config --global core.commentchar ';'
git config --global core.commentChar auto
Jawaban di sini bagus dan terperinci, tetapi untuk git noob seperti saya menyesuaikan opsi konfigurasi git tidak begitu jelas. Berikut adalah contoh untuk mengubah dari
#
ke;
untuk karakter komentar:Itu semua yang perlu Anda lakukan.
sumber
git commit
untuk membuka editor yang dikonfigurasi untuk mengedit pesan komit!git -c core.commentChar="|" commit --amend
(ganti|
dengan apa pun yang Anda inginkan).Anda dapat menggunakan opsi baris perintah
-m
:sumber
Jika Anda melakukan rebase interaktif, maka ketika Anda menyimpan pesan komit Anda tanpa isi di dalamnya (karena
#
pada awalnya telah memberikan komentar dan karenanya diabaikan) git akan menunjukkan kepada Anda apa yang harus dilakukan:Jadi, ubah saja pesannya:
dan lanjutkan rebase:
sumber
git commit --cleanup=scissors
seharusnya digunakan. Ini ditambahkan ke Git v2.0.0 pada 2014.05.21dari
git commit --help
sumber
commit.cleanup = whitespace
dan menghapus# …
komentar dengan tangan, seperti yang disarankan oleh @CharlesBailey.scissors
-mode hanya tambahan membersihkan sintaks-gunting yang digunakan olehgit
format-patch
/mailinfo
/am
; itu tidak menggunakan…-- >8 --…
sintaks saat menambahkan komentar untuk melakukan pesan .# ...
komentar dengan susah payah. 2. Saya tidak begitu yakin tentang bagian kedua dari komentar Anda,scissors
modenya jelas dalamgit commit --help
. Versi apagit
yang Anda gunakan? @ SlippD.Thompsonwhitespace
mode menawarkan pengupasan 1. baris kosong terkemuka dan tertinggal, 2. spasi kosong, 3. runtuh baris kosong berturut-turut.scissors
menawarkan pengupasan 1. baris kosong terkemuka dan tertinggal, 2. spasi kosong, 3. runtuh baris kosong berurutan, 4. semuanya dari (dan termasuk) jalur# -…- >8 -…-
. Namun, garis gunting (# -…- >8 -…-
) hanya disisipkan saat menggunakangit-format-patch
/mailinfo
/am
. Oleh karena itu untuk alur kerja normalgit-commit
/merge
/rebase
/cherry-pick
,scissors
mode pengupasan menawarkan manfaat nol dibandingkanwhitespace
mode. v2.11.0git commit --cleanup=scissors
TIDAK MEMULIAKAN# ------------------------ >8 ------------------------
baris sebelumgit status
info. Seperti di bawah ini: `# ------------------------> 8 ------------------- ----- # Jangan menyentuh garis di atas. # Segala sesuatu di bawah ini akan dihapus. # Pada master cabang # # Komit awal # # Perubahan untuk dikomit: # file baru: .gitignore `# ------------------------ >8 ------------------------
sebelum txt status "Sepertinya Anda mungkin ..." _ saat menggunakanscissors
; Namun, itu menyisipkan baris gunting setelah itu# Conflicts: …
teks. Saya telahcommit.status = false
mengatur di saya.gitconfig
, jadi saya tidak melihat teks status, hanya teks konflik. Saya berdiri dikoreksi; mengubah ke upvote.Gunakan awalan berbeda untuk nomor tiket. Atau tambahkan kata ke nomor tiket, seperti "Bug # 42". Atau tambahkan satu karakter spasi ke baris; jika Anda ingin menghapus spasi itu, Anda dapat menambahkan komit-kait untuk itu.
Saya pribadi lebih suka tidak melakukan manipulasi pesan komit semacam ini dilakukan oleh sebuah pengait karena bisa sangat menjengkelkan ketika dipicu ketika Anda tidak menginginkannya. Solusi termudah mungkin adalah memikirkan kembali masalahnya.
sumber
#xxx
terjadi di mana saja di pesan komit akan menghubungkan ke masalah ini. Itu tidak harus di awal komit. Mungkin ini adalah sesuatu yang telah berubah dalam lima tahun terakhir?Semua komit saya dimulai dengan
#issueNumber
jadi saya menempatkan boilerplate ini kevim .git/hooks/commit-msg
:Jadi anggaplah kita memiliki cabang
#15
dan kita membuat pesan komitadd new awesome feature
. Dengan pendekatan ini pesan komit akhir akan#15 add new awesome feature
.sumber