2015-10-15 128 views
0

從父目錄我想切換所有子目錄的分支。有這個命令嗎?交換子目錄分支

ParentDirectory 
- Sub1 
- Sub2 
- Sub3 

cd Sub1 
git checkout f1 
cd .. 
cd Sub2 
git checkout f1 
cd .. 
cd Sub3 
git checkout f1 
cd .. 
+2

等等,什麼?你的每個目錄都有一個Git倉庫? – Makoto

+0

你真的應該提供更多的細節,因爲問題本身是非常含糊的:你真的在每個子目錄中有單獨的*不相交* Git倉庫嗎?或者你有* submodules?*或者它可能是一個單一的存儲庫,但你正在尋找像切換subtire的一個分支的東西*就像你會在Subversion中做的那樣?*你看,有太多的猜測,所以人們感到困惑,在評論中開始戰鬥等。請準確。 – kostix

回答

0

如果你如果您使用在cmd窗口使用bash,從頂層目錄

for d in */ ; do 
    git checkout "$d" 
done 

For /D %G IN (*) do git checkout %G 
+0

你在技術上不是錯誤的,但事實上,這似乎是一個Git倉庫的非典型使我相信,這裏有一些其他*錯誤。 – Makoto

+0

@Makoto你能否停下來投下我投稿的一切?特別是如果你同意這是技術上正確的。 如果你有多個git倉庫,比如說在一個eclipse工作區中,並且你想一次切換所有的倉庫,這將是一個非常有效的用例,我的解決方案也可以工作。 – Sammy

+0

不,不一定......如果它們是真正的子模塊,你可能會想要使用基於子模塊的命令......再次,我說你在技術上是正確的(至少在機械意義上),但我仍然感覺這不是解決實際問題*的正確方案。 – Makoto

0

如果你的子文件夾都submodules,則您可以使用git submodule foreach(如果子模塊包含子模塊,則甚至可以使用git submodule foreach --recursive

git submodule foreach git checkout -b newBranch