1
假如我是上犯了具有子模塊S1的Git獲取最新從子模塊gitmodule
,有人添加子模塊S2在犯下+ 1,現在我不想要移動到一個+ 1,但取(只下載)子模塊s2。
這可能嗎?
我的Git版本2.1.4是我可以在必要時更新
編輯得到2.10.1.windows.1:簡單的腳本我試過了,它有一些問題 - 新裏git的文件夾被克隆子模塊而不是超級代表的.git /模塊文件夾 - 工作目錄受到新子模塊的污染:
git diff HEAD origin/master .gitmodules 2>&1 | perl -e '
while(<>)
{
if(/^\+\s+path = (.+)/)
{
my $path = $1;
my $line = <>;
if($line=~/^\+\s+url = (.+)/)
{
my $url = $1;
print "$path -> $url\n";
`git clone "$url" "$path"`
}
}
}'
所以這是一個簡單的腳本,我爲你的第一個方法做了,這裏有什麼不對嗎?因爲當我克隆s2時,submodule的'.git'文件夾位於子模塊內,而不在超級存儲庫的'.git/modules'中。編輯:將腳本置於問題中,因爲我無法在此處格式化 – tejas
@tejas不打擾第一種方法:它不知道要檢出哪個S2的確切版本。使用git worktree做2d方法:它允許你有多個工作樹,這意味着你的當前工作樹將不會被觸及(除了符號鏈接,它也存在於Windows中,並帶有一個簡單的結點:'mklink/J' ) – VonC
我真的不需要簽出s2,只是試圖保存下載時間,當實際檢查/子模塊更新 – tejas