我一直在爲我們團隊的項目開發一項新功能,並且我的代碼更改在相當有用的地方包含了許多調試打印語句。在推送代碼之前,我將刪除所有這些調試打印語句,但我知道每當我回到這個時候,我最終都會再次放入這些調試打印語句。Git - 在從代碼中刪除之前'保存'調試語句
所以,如果我刪除調試語句,並提交。所有需要的調試語句基本上都是git diff HEAD^!
。這種差異的反轉(如果這甚至是一件事情)將是我需要的所有調試語句。有沒有辦法做到這一點?
或者你會建議任何其他理智的工作流程來處理這種事情。
我一直在爲我們團隊的項目開發一項新功能,並且我的代碼更改在相當有用的地方包含了許多調試打印語句。在推送代碼之前,我將刪除所有這些調試打印語句,但我知道每當我回到這個時候,我最終都會再次放入這些調試打印語句。Git - 在從代碼中刪除之前'保存'調試語句
所以,如果我刪除調試語句,並提交。所有需要的調試語句基本上都是git diff HEAD^!
。這種差異的反轉(如果這甚至是一件事情)將是我需要的所有調試語句。有沒有辦法做到這一點?
或者你會建議任何其他理智的工作流程來處理這種事情。
例如,可以使用git stash -p
方法完成此操作,您可以在其中手動選擇要存儲和不存儲的內容,但我不建議這樣做,因爲此存儲將非常脆弱,您可以做一些來自master的更新(也許從其他開發者那裏),你的存儲將不會被幹淨地應用,你將不得不解決衝突,而不是手動添加這些調試語句會更麻煩。
作爲替代方案,可以使那些調試語句的條件,例如,運行它們只有在代碼是在你的機器上運行,如果一些DEBUG
環境變量設置或東西:
puts 'my debug here' if ENV['DEBUG'] # example in ruby
這這些調試語句只能在你的機器上看到,而不能在生產中看到。
如果您PRTINF語句很容易解析,你可以聲明content filter driver,這裏超淨過濾:
(來源:Pro Git book: Customizing Git - Git Attributes)
你clean
腳本會一個simple sed
command skipping lines matching a pattern。
這樣一來,任何git diff
或git commit
會考慮你的來源沒有的printf
調試語句。