2013-08-21 42 views
4

在git中添加新標籤時,我希望在$ EDITOR啓動之前自動修改默認(空)標籤消息 - 類似於git允許通過prepare-commit-msg鉤子準備提交消息的方式。有沒有辦法編寫git標籤消息?

例如:

git tag -s v1.2.3 

應打開我的編輯與預填充的內容是這樣的:

Release v1.2.3: 

    * Dynamically generated message 1 

    * Dynamically generated message 2 

Default standard text. 

# 
# Write a tag message 
# Lines starting with '#' will be ignored 

有什麼辦法來實現這一目標?不幸的是,prepare-commit-msg掛鉤不能處理標籤消息。 (無論這個,還是我太愚蠢找出如何做到這一點。)

+0

注意:使用Git 2.17(Q2 2018),現在還有'--edit'選項可用於'git tag'。請參閱https://stackoverflow.com/a/49215146/6309 – VonC

回答

4

您可以創建一個別名,它會首先填充一個臨時文件與所需的內容,然後用該選項-F <file>/--file=<file>養活運行git tag將臨時文件的內容放入標記消息中。理論上,這樣的事情:

[alias] 
    tag-prepare = !~/bin/prepare_file.sh && git tag --file="/home/user/temp/temp.txt" 

然後,你會用git tag-prepare v1.2.3來調用它。

請注意,prepare_file.sh腳本需要創建整個標記消息,因爲--file選項不再打開編輯器來編輯內容,只需要在提供的文件中使用w/e並將其用作消息。

+0

我已經想到了使用'-F'參數的命令行解決方案,但我仍然希望能夠在我的編輯器中修改消息。自動生成的消息完全適合大部分時間,但並非總是如此。 – igor

+1

那麼,你可以通過腳本來完成。在腳本中,使用$ EDITOR打開文件,文本已經生成,編輯,保存,退出,讓腳本完成,然後用'-F'選項執行'git tag'。 – mart1n

+0

D'oh當然。謝謝! – igor

相關問題