我正在使用關鍵字擴展,如書中Pro Git所述。然而,在提交後需要做的,例如,提交後git關鍵字擴展
rm file
git checkout file
有在工作文件正確的關鍵字擴展(因爲塗抹只結賬後適用)。
如何在提交後自動進行關鍵字擴展?
當然,我可以使用鉤子去除/重新簽出,但這似乎不是一個好的解決方案。此外,我將不得不手動檢查,提交哪個文件。
有沒有更優雅的方式?例如,我可以在提交後自動運行過濾器的污跡嗎?
我正在使用關鍵字擴展,如書中Pro Git所述。然而,在提交後需要做的,例如,提交後git關鍵字擴展
rm file
git checkout file
有在工作文件正確的關鍵字擴展(因爲塗抹只結賬後適用)。
如何在提交後自動進行關鍵字擴展?
當然,我可以使用鉤子去除/重新簽出,但這似乎不是一個好的解決方案。此外,我將不得不手動檢查,提交哪個文件。
有沒有更優雅的方式?例如,我可以在提交後自動運行過濾器的污跡嗎?
如何在提交後自動進行關鍵字擴展?
你不這樣做,這就是爲什麼Git沒有「真正」支持關鍵字擴展,正如我在「Git equivalent of subversion's $URL$
keyword expansion」中詳細說明的那樣。
另一種方法(列在「Git hook, modify commit files」中)是使用git notes
將元數據附加到提交(不修改其SHA1)。
我相信一個post-commit掛鉤確實可以解決您的問題。
添加下面的post-commit鉤子:
#!/bin/sh
BRANCH=$(git branch | awk 'sub(/^\*[[:space:]]+/,""){print;exit}')
git show --name-only -z --format= |
xargs -r0 git reset "${BRANCH:-master}" --
我理解上沒有關鍵字擴展Git的理念。我使用「git svn」(用於編寫tex文檔)。直接使用subversion時我有關鍵字擴展;它用於將修訂號添加到打印出來的PDF中以供參考。因此,我也希望在我的git世界中擁有它。 –
@DanielKrenn我明白了。我會推薦'git notes'來添加*你想提交的任何*信息。 – VonC