การสร้างข้อความ Git Commit ด้วย PowerShell
ในกระบวนการเรียนรู้การใช้ Git ของฉัน ฉันกำลังพยายามสร้างนิสัยในการใช้ข้อความยืนยันที่มีความหมาย แน่นอนว่าคุณสามารถใช้ความคิดเห็นบรรทัดเดียวซึ่งใช้ได้ดีเมื่อเรียกใช้ git log -oneline แต่คุณสามารถใช้ข้อความยืนยันแบบหลายบรรทัดได้ อย่างไรก็ตาม ต้องมีการวางแผนเล็กน้อยซึ่งอาจไม่ใช่เรื่องเลวร้าย เนื่องจากโปรเจ็กต์ Git ของฉันเกี่ยวข้องกับ PowerShell และฉันมักจะพบเคล็ดลับเล็กๆ น้อยๆ ที่เหมาะกับฉันใน PowerShell ISE
ในโครงการ PowerShell ของฉัน ฉันพยายามรวมไฟล์บันทึกการเปลี่ยนแปลง ไฟล์แสดงรายการการเปลี่ยนแปลงที่เกิดขึ้นในแต่ละเวอร์ชันซึ่งจะตรงกับการคอมมิตเสมอ รายการอาจมีลักษณะดังนี้:
v0.0.1
Import tasks from XML file
Get tasks from XML file with options.
added core module files
นี่คือข้อความที่ฉันต้องการรวมไว้ในข้อความยืนยันฉบับเต็มของฉัน ฉันไม่ต้องการคัดลอกและวางหรือพิมพ์ซ้ำจำนวนมาก ดังนั้นฉันจึงเขียนฟังก์ชัน PowerShell ง่ายๆ ที่สร้างข้อความยืนยันของฉัน
#New-GitMessage.ps1
<#
Copy selected text into a here string that can be
used as a git commit message
#>
Function New-GitMessage {
[cmdletbinding()]
Param([string]$Text = $psise.CurrentFile.Editor.SelectedText)
#insert the selected text into a global variable.
$global:msg = $text
}
#create a shortcut in the ISE
$psise.CurrentPowerShellTab.AddOnsMenu.Submenus.Add("Commit Msg",{New-GitMessage},$null) | Out-Null
สคริปต์นี้มีวัตถุประสงค์เพื่อใช้ใน PowerShell ISE แนวคิดนี้เรียบง่ายมากและอาจไม่ต้องการฟังก์ชันจริงๆ สมมติฐานคือฉันจะเลือกส่วนหนึ่งของข้อความในบันทึกการเปลี่ยนแปลงและรันคำสั่ง New-GitMessage คำสั่งทั้งหมดทำคือแทรกข้อความลงในตัวแปรส่วนกลาง แม้ว่าทุกอย่างใน ISE จะทำงานอยู่ในขอบเขตเดียวกัน แต่ฉันใช้คำนำหน้าสากล ดังนั้นความตั้งใจของฉันจึงชัดเจน เมื่อฉันพร้อมที่จะกระทำ ฉันสามารถใช้สำนวนเช่นนี้:
git commit -a -m $msg
เรียบง่าย แต่มีประสิทธิภาพ
บรรทัดสุดท้ายในไฟล์สคริปต์จะเพิ่มตัวเลือกให้กับเมนู AddOns ฉันไม่ได้ใช้แป้นพิมพ์ลัด แต่คุณสามารถเพิ่มได้หากต้องการ ในสคริปต์โปรไฟล์ PowerShell ISE ของฉัน ฉันระบุแหล่งที่มาของไฟล์สคริปต์นี้ และฉันพร้อมที่จะใช้งานแล้ว
นี่คือคำสั่งที่ใช้งานจริง
นี่แทบจะไม่ใช่โค้ด PowerShell ที่แหวกแนวเลย แต่ฉันพบว่าทางลัดเล็กๆ น้อยๆ ทุกอันที่ฉันสามารถทำได้จะเพิ่มมากขึ้นในระยะยาว