我們爲我們的包管理器使用了一個自定義版本的作曲家。如何爲某些子文件夾檢查'git status'?
我們添加到項目中的每個包實際上都是一個.git
回購。
當然,這些文件夾(/ Vendor/packages /)被父回購忽略,當我編寫git status
時,它只顯示當前回購的狀態。
有沒有辦法檢查我項目下.git倉庫的狀態。
我在尋找類似git submodule foreach status
的東西。
我們爲我們的包管理器使用了一個自定義版本的作曲家。如何爲某些子文件夾檢查'git status'?
我們添加到項目中的每個包實際上都是一個.git
回購。
當然,這些文件夾(/ Vendor/packages /)被父回購忽略,當我編寫git status
時,它只顯示當前回購的狀態。
有沒有辦法檢查我項目下.git倉庫的狀態。
我在尋找類似git submodule foreach status
的東西。
你可以在Vendor/packages
使用find
子目錄和他們中的每一個執行git status
。
find Vendor/packages -type d -maxdepth 1 -print -exec sh -c '(echo {} && cd {} && git status && echo)' \;
這是在假設下,供應商的所有文件夾/包是自己的git回購協議。
git status .
將向您顯示當前文件夾及其子文件夾的文件狀態,但不顯示子模塊的狀態。
要列出下,子模塊的改變,你必須使用以下行:
# use the build in submodule foreach option
git submodule foreach --recursive git diff --name-status
git submodule foreach
[--recursive]
計算一個任意的shell命令每簽出子模塊。如果給出
--recursive
,遍歷子模塊遞歸(即給定的shell命令也在嵌套子模塊中計算)。
很抱歉,如果我沒有讓自己清楚,我們沒有使用Git的子模塊功能。軟件包通過_composer_下載,但未作爲子模塊添加到父回購站。他們只是父母回購忽略的文件夾。 – zehreken
所以你忽略了你想檢查他們的狀態的文件夾?如果它們被忽略,那麼所有文件都未被跟蹤。你期望找到什麼差異? – CodeWizard
在處理項目時,我有時會發現自己正在編輯程序包中的代碼。我有時會將我的更改移至原始回購站,有時會直接從項目回購站推送。順便提一下,他們兩個都有相同的遙控器。我不確定這是否是好的做法。 – zehreken
你可以試試這個
git status directory_path
爲前
git status upload/
太複雜了。在下面的答案中使用單線解決方案。 – CodeWizard
@CodeWizard:如果供應商系統下的文件夾不是git子模塊,git子模塊會工作嗎,只是沒有以任何方式鏈接到父git倉庫的git倉庫? –
如果不是子模塊,你不能在repo裏面購買repo。 git將無法正常工作。 – CodeWizard