我重新安裝我的操作系統。我的電腦上有數千個回購站。我有一種感覺,我在一些回購協議中進行了一些修改,而這些修改沒有被承諾和/或推動。列出git倉庫與unpushed更改
從我的Debian PC上的bash shell中,找到尚未提交/推送到其遙控器的更改列表的最佳方法是什麼,並決定是否要保留更改?
我重新安裝我的操作系統。我的電腦上有數千個回購站。我有一種感覺,我在一些回購協議中進行了一些修改,而這些修改沒有被承諾和/或推動。列出git倉庫與unpushed更改
從我的Debian PC上的bash shell中,找到尚未提交/推送到其遙控器的更改列表的最佳方法是什麼,並決定是否要保留更改?
我假設在每個回購中找到每個回購和運行git status
就足以滿足您的需求。在這種情況下,下面可能是一個起點你:
find/-name "*.git" -type d -print0 | xargs -0 -L 1 -i% bash -c "cd %/..; pwd; git status -s -uno"
find
遍歷文件系統,開始/
(你可能要限制或許~
),搜索git的diretories。輸出(null-delimited來處理有趣的文件名)被傳送到xargs,其中cd
s到每個repo,打印pwd
和短形式的git-status,沒有列出未跟蹤的文件。
上一個答案發現未提交但未提交的提交。
這將找到:
find/-name "*.git" -type d -print0 | xargs -0 -L 1 -i% bash -c "cd %/..; pwd; git status -s -uno; git cherry -v 2>/dev/null"
git cherry
顯示unpushed變化SHA1; -v
添加提交評論;並且錯誤重定向可以抑制缺少上游信息的repos輸出。
您可能會喜歡Ferry Boender的項目multi-git-status。
https://github.com/fboender/multi-git-status。
「在多個Git存儲庫中顯示未完成的,未跟蹤和未修改的更改。」
未提交的更改如何? – jordanm
對不起愚蠢的評論,但你好格雷格。我第一次意識到2人可以擁有相同的SO名稱。 – Greg