我使用許多git-repositories 來組織我的作業(>30),所有這些都組織在一個根目錄下。(我不使用模塊,也不想使用。)
我的問題是,是否有人可以提供一個簡單的腳本來遞回地遍歷所有子檔案夾(有些是 git 存盤庫,有些不是),以確定拉取是否會帶來一些變化。即,我不希望腳本執行這些拉取操作,我只想要一個可以拉取的檔案夾串列(包含一個 git 存盤庫)。(顯然,一個“可以”總是拉動;我的意思是遠程存盤庫有尚未拉動的更改。)我相信“不知何故” git fetch 可以提供這些資訊,但我不知道它是如何提供的即使執行兩次也會帶來不同的結果。顯然,我希望我的腳本始終導致相同的輸出,只要我不拉取它的任何存盤庫,例如,當我連續執行兩次時也是如此。
(僅供參考,這里提出并回答了一個相關問題),但他們確實想要執行那些拉動,而我不這樣做;如果有沖突等,我想手動執行此操作;我真的只想要清單。
僅供參考:這個問題的雙重(補充)是如何查找/識別我有本地(而不是遠程)更改的存盤庫。你在這里找到它。
uj5u.com熱心網友回復:
我才意識到什么git fetch是真正有好處的。^^
因此,需要做的就是從所有存盤庫中獲取。之后呼叫git status只會告訴我們當前存盤庫是否在遠程存盤庫之后。
所以我們可以簡單地撰寫以下函式(或作為別名)放入 .bashrc 中:
function gitoutdated()
{
find . -type d -iname '.git' -exec sh -c 'cd "${0}/../" && git fetch && git status | grep -q "is behind" && pwd' "{}" \;
}
有幾種方法可以改進腳本:
- 目前,當第一次呼叫它時,它還會通過 fetch 命令列印輸出,這似乎讓人分心。一個可能的管道是什么都沒有,只得到一個清晰的串列。(我們在第二次呼叫腳本時也會看到清晰的串列。)對于不再存在的存盤庫也是如此。相反,可以單獨提供這些串列(但這需要更多的編碼作業)。
- 還可以顯示一個人落后了多少次提交,但我認為這并不重要。過時就是過時!:)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/523775.html
標籤:混帐grep
上一篇:git協議連接被拒絕
