2014-10-02 27 views
0

爲了防止我們的CI系統在每次提交時生成,我們必須在每次提交(git commit -m "... [skip ci]")結束時追加[skip ci]Git別名:追加字符串以提交消息

是否有可能爲此創建別名?

我一直在玩:

[alias] 
    cms = !git commit -m "${1} \[skip ci\]" $1 
+0

你爲什麼要_push_(你可以創造任何你想要的; CI只能建立你推到倉庫是什麼它看到)不應該由CI構建的提交? – 2014-10-02 14:01:10

+0

主要用於分支機構。不希望每一次推動分支。 – 2014-10-02 14:02:48

+0

但是,當它畢業時,它不會被建立。考慮改爲配置CI,以便它不會構建所有分支,而只會建立中央分支(「master」,「develop」,「next」等取決於您擁有的分支)以及與某種模式匹配的分支。然後,如果您希望看到您的版本仍然以所有配置構建,那麼您可以推送至非構建分支以進行備份/共享以及構建分支。如果您稍後決定要創建它,即使是相同的提交。 – 2014-10-02 14:36:17

回答

2

Commit Message Hooks

相反的別名,我會考慮用Ÿ提示用戶的S/N,如果他們想跳過CI或不掛鉤。

我的bash mojo不夠好,不知道你試圖通過Git Alias實現什麼。

真的很粗糙的示例代碼。工作,但不包括所有情況。

把這個在git的/鉤/準備提交,味精,並確保它是可執行的

#!/bin/sh 
exec < /dev/tty 
echo "Skip CI?" 
select yn in "Yes" "No" 
do 
    case ${yn} in 
     "Yes") 
     echo "[skip ci]" >> $1 
     break;; 
     "No") 
     break;; 
    esac 
done 

這是當你運行提交會發生什麼。如果您輸入「2」爲否,則提交會正常進行,如果您輸入「1」,則會添加您的跳過ci消息。妥善解決將需要擴展到處理之類的東西合併提交,提交模板等

(master)$ git commit -m "also junk" 
Skip CI? 
1) Yes 
2) No 
#? 1 
[master bfa5200] also junk [skip ci]] 
1 file changed, 0 insertions(+), 0 deletions(-) 
create mode 100644 bar 
[email protected]:/scratch/commit_msg (master)$ git log 
commit bfa5200096f7251e2dc8fc457af81c59519901f3 
Author: Andrew C <[email protected]> 

    also junk 
    [skip ci] 
+0

你是怎麼做到的?你有一個示例代碼? Alias有可能嗎? – 2014-10-02 20:19:51

+0

感謝代碼示例 - 它工作正常。 – 2014-10-06 14:54:19