是否有一個命令可以獲取總數爲的行,這些行在當前git回購中已更改。我想考慮考慮上演和非持續文件。Git:在回購中獲取未完成行的總數
這是最接近我能得到
$ git diff --cached --shortstat
1 file changed, 1 insertion(+), 1 deletion(-)
$ git diff --shortstat
1 file changed, 1 insertion(+)
但我不得不執行兩個指令,然後解析(很容易出錯,你永遠不知道所有的情況下),結果發現線已更改號碼。
如果不是git命令,bash/zsh函數也可以。
UPDATE:
這樣的想法是要跟蹤我ZSH提示共提交線(表示一個Git工作目錄的骯髒近似水平),喜歡的東西:
[~/dotfiles] (master) ✗ [192]
$ ...
所以感謝以@ arco444的答案,我稍作修改,我現在有以下,只是如果有人想要達到同樣的效果
function git_change_count {
local IS_INSIDE_REPO=$(git rev-parse --is-inside-work-tree 2>/dev/null)
if [[ $IS_INSIDE_REPO == "true" ]]; then
{ git diff --cached --numstat; git diff --numstat; } | awk '{ a+=($1+$2) } END {print a}'
fi
}
我添加了添加和刪除行的行,而不是獲取它們的差異。這基本上意味着編輯過的行顯示爲2,但是這樣做會覆蓋兩個不同的行被添加和刪除並且由於減法而得到0的場景。
這兩個命令將重複計算在兩個位置發生更改的行。這似乎是想要對我做的一件奇怪的事情。這裏的最終目標是什麼? –
@EtanReisner這個想法是捕獲給定的git工作目錄的'骯髒'。它不一定是確切的。我很好,如果一條線,這是上演的計數兩次,如果它在未分離的版本再次改變。 – kunal