2014-03-29 76 views
1

我重新安裝我的操作系統。我的電腦上有數千個回購站。我有一種感覺,我在一些回購協議中進行了一些修改,而這些修改沒有被承諾和/或推動。列出git倉庫與unpushed更改

從我的Debian PC上的bash shell中,找到尚未提交/推送到其遙控器的更改列表的最佳方法是什麼,並決定是否要保留更改?

+0

未提交的更改如何? – jordanm

+0

對不起愚蠢的評論,但你好格雷格。我第一次意識到2人可以擁有相同的SO名稱。 – Greg

回答

2

我假設在每個回購中找到每個回購和運行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,沒有列出未跟蹤的文件。

0

上一個答案發現未提交但未提交的提交。

這將找到:

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輸出。