Почему git subtree pull перезаписывает верхний каталог?

Я добавил поддерево, используя:

git subtree add -P WLContainerControllers https://github.com/an0/WLContainerControllers.git master

Результирующий коммит:

commit bb77fe3c8244a42454b23285f174798116a5eaf8
Merge: 6686d73 755c342
Author: Ling Wang <[email protected]>
Date:   Tue Jun 25 17:20:29 2013 -0500

    Add 'WLContainerControllers/' from commit '755c342622fc6470e034f1b27e764329d7b8a01c'

    git-subtree-dir: WLContainerControllers
    git-subtree-mainline: 6686d73b438fc22514b36cdf76adf7ea9c35b558
    git-subtree-split: 755c342622fc6470e034f1b27e764329d7b8a01c

Затем, после некоторых восходящих обновлений, я сделал извлечение поддерева, используя:

git subtree pull -P WLContainerControllers https://github.com/an0/WLContainerControllers.git master - -давить

Выход:

From https://github.com/an0/WLContainerControllers
 * branch            master     -> FETCH_HEAD
Removing WLPageViewController/main.m
Removing WLPageViewController/en.lproj/InfoPlist.strings
Removing WLPageViewController/damping.m
Removing WLPageViewController/WLPageViewController.m
Removing WLPageViewController/WLPageViewController.h
Removing WLPageViewController/WLPageViewController-Prefix.pch
Removing WLPageViewController/WLPageViewController-Info.plist
Removing WLPageViewController/PageViewController.xib
Removing WLPageViewController/PageViewController.m
Removing WLPageViewController/PageViewController.h
Removing WLPageViewController/ModelController.m
Removing WLPageViewController/ModelController.h
Removing WLPageViewController/[email protected]
Removing WLPageViewController/Default.png
Removing WLPageViewController/[email protected]
Removing WLPageViewController/DataViewController.xib
Removing WLPageViewController/DataViewController.m
Removing WLPageViewController/DataViewController.h
Removing WLPageViewController/AppDelegate.m
Removing WLPageViewController/AppDelegate.h
Removing WLPageViewController.xcodeproj/project.pbxproj
Removing WLContainerControllers/WLContainerControllers/README.md
Removing WLContainerControllers/WLContainerControllers/LICENSE
Removing WLContainerControllers/WLContainerControllers.xcodeproj/xcuserdata/an0.xcuserdatad/xcschemes/xcschememanagement.plist
Removing WLContainerControllers/WLContainerControllers.xcodeproj/xcuserdata/an0.xcuserdatad/xcschemes/WLContainerControllers.xcscheme
Removing WLContainerControllers/WLContainerControllers.xcodeproj/project.xcworkspace/xcuserdata/an0.xcuserdatad/WorkspaceState.xcuserstate
Removing WLContainerControllers/WLContainerControllers.xcodeproj/project.xcworkspace/contents.xcworkspacedata
Removing WLContainerControllers/WLContainerControllers.xcodeproj/project.pbxproj
Removing WLContainerControllers/WLContainerControllers.xcodeproj/an0.perspectivev3
Removing WLContainerControllers/WLContainerControllers.xcodeproj/an0.pbxuser
Removing WLContainerControllers/WLContainerControllers.xcodeproj/an0.mode1v3
Removing .gittrees
Merge made by the 'recursive' strategy.
 .gittrees                                                                                                   |    4 -
 WLContainerControllers/WLContainerControllers/AppDelegate.h => AppDelegate.h                                |    0
 WLContainerControllers/WLContainerControllers/AppDelegate.m => AppDelegate.m                                |    0
 WLContainerControllers/WLContainerControllers/[email protected] => [email protected]                    |  Bin
 WLContainerControllers/WLContainerControllers/WLContainerController.h => WLContainerController.h            |    0
 WLContainerControllers/WLContainerControllers/WLContainerController.m => WLContainerController.m            |    0
 .../WLContainerControllers/WLContainerControllers-Info.plist => WLContainerControllers-Info.plist           |    0
 WLContainerControllers/WLContainerControllers.xcodeproj/an0.mode1v3                                         | 1403 ---------------------------------
 WLContainerControllers/WLContainerControllers.xcodeproj/an0.pbxuser                                         |  542 -------------
 WLContainerControllers/WLContainerControllers.xcodeproj/an0.perspectivev3                                   | 1530 ------------------------------------
 WLContainerControllers/WLContainerControllers.xcodeproj/project.pbxproj                                     |  308 --------
 WLContainerControllers/WLContainerControllers.xcodeproj/project.xcworkspace/contents.xcworkspacedata        |    7 -
 .../project.xcworkspace/xcuserdata/an0.xcuserdatad/WorkspaceState.xcuserstate                               | 2264 ------------------------------------------------------
 .../WLContainerControllers.xcodeproj/xcuserdata/an0.xcuserdatad/xcschemes/WLContainerControllers.xcscheme   |   76 --
 .../WLContainerControllers.xcodeproj/xcuserdata/an0.xcuserdatad/xcschemes/xcschememanagement.plist          |   22 -
 WLContainerControllers/WLContainerControllers/LICENSE                                                       |   27 -
 WLContainerControllers/WLContainerControllers/README.md                                                     |    4 -
 .../WLContainerControllers/WLContainerControllers_Prefix.pch => WLContainerControllers_Prefix.pch           |    0
 .../WLContainerControllers/WLMultiContentContainerController.h => WLMultiContentContainerController.h       |    0
 .../WLContainerControllers/WLMultiContentContainerController.m => WLMultiContentContainerController.m       |    0
 WLPageViewController.xcodeproj/project.pbxproj                                                              |  372 ---------
 WLPageViewController/AppDelegate.h                                                                          |   15 -
 WLPageViewController/AppDelegate.m                                                                          |   52 --
 WLPageViewController/DataViewController.h                                                                   |   14 -
 WLPageViewController/DataViewController.m                                                                   |   37 -
 WLPageViewController/DataViewController.xib                                                                 |  236 ------
 WLPageViewController/[email protected]                                                                    |  Bin 18594 -> 0 bytes
 WLPageViewController/Default.png                                                                            |  Bin 6540 -> 0 bytes
 WLPageViewController/[email protected]                                                                         |  Bin 16107 -> 0 bytes
 WLPageViewController/ModelController.h                                                                      |   17 -
 WLPageViewController/ModelController.m                                                                      |   89 ---
 WLPageViewController/PageViewController.h                                                                   |   16 -
 WLPageViewController/PageViewController.m                                                                   |   68 --
 WLPageViewController/PageViewController.xib                                                                 |  133 ----
 WLPageViewController/WLPageViewController-Info.plist                                                        |   45 --
 WLPageViewController/WLPageViewController-Prefix.pch                                                        |   29 -
 WLPageViewController/WLPageViewController.h                                                                 |   48 --
 WLPageViewController/WLPageViewController.m                                                                 | 1098 --------------------------
 WLPageViewController/damping.m                                                                              |   53 --
 WLPageViewController/en.lproj/InfoPlist.strings                                                             |    2 -
 WLPageViewController/main.m                                                                                 |   18 -
 WLContainerControllers/WLContainerControllers/main.m => main.m                                              |    0
 42 files changed, 8529 deletions(-)
 delete mode 100644 .gittrees
 rename WLContainerControllers/WLContainerControllers/AppDelegate.h => AppDelegate.h (100%)
 rename WLContainerControllers/WLContainerControllers/AppDelegate.m => AppDelegate.m (100%)
 rename WLContainerControllers/WLContainerControllers/[email protected] => [email protected] (100%)
 rename WLContainerControllers/WLContainerControllers/WLContainerController.h => WLContainerController.h (100%)
 rename WLContainerControllers/WLContainerControllers/WLContainerController.m => WLContainerController.m (100%)
 rename WLContainerControllers/WLContainerControllers/WLContainerControllers-Info.plist => WLContainerControllers-Info.plist (100%)
 delete mode 100644 WLContainerControllers/WLContainerControllers.xcodeproj/an0.mode1v3
 delete mode 100644 WLContainerControllers/WLContainerControllers.xcodeproj/an0.pbxuser
 delete mode 100644 WLContainerControllers/WLContainerControllers.xcodeproj/an0.perspectivev3
 delete mode 100755 WLContainerControllers/WLContainerControllers.xcodeproj/project.pbxproj
 delete mode 100644 WLContainerControllers/WLContainerControllers.xcodeproj/project.xcworkspace/contents.xcworkspacedata
 delete mode 100644 WLContainerControllers/WLContainerControllers.xcodeproj/project.xcworkspace/xcuserdata/an0.xcuserdatad/WorkspaceState.xcuserstate
 delete mode 100644 WLContainerControllers/WLContainerControllers.xcodeproj/xcuserdata/an0.xcuserdatad/xcschemes/WLContainerControllers.xcscheme
 delete mode 100644 WLContainerControllers/WLContainerControllers.xcodeproj/xcuserdata/an0.xcuserdatad/xcschemes/xcschememanagement.plist
 delete mode 100644 WLContainerControllers/WLContainerControllers/LICENSE
 delete mode 100644 WLContainerControllers/WLContainerControllers/README.md
 rename WLContainerControllers/WLContainerControllers/WLContainerControllers_Prefix.pch => WLContainerControllers_Prefix.pch (100%)
 rename WLContainerControllers/WLContainerControllers/WLMultiContentContainerController.h => WLMultiContentContainerController.h (100%)
 rename WLContainerControllers/WLContainerControllers/WLMultiContentContainerController.m => WLMultiContentContainerController.m (100%)
 delete mode 100644 WLPageViewController.xcodeproj/project.pbxproj
 delete mode 100644 WLPageViewController/AppDelegate.h
 delete mode 100644 WLPageViewController/AppDelegate.m
 delete mode 100644 WLPageViewController/DataViewController.h
 delete mode 100644 WLPageViewController/DataViewController.m
 delete mode 100644 WLPageViewController/DataViewController.xib
 delete mode 100644 WLPageViewController/[email protected]
 delete mode 100644 WLPageViewController/Default.png
 delete mode 100644 WLPageViewController/[email protected]
 delete mode 100644 WLPageViewController/ModelController.h
 delete mode 100644 WLPageViewController/ModelController.m
 delete mode 100644 WLPageViewController/PageViewController.h
 delete mode 100644 WLPageViewController/PageViewController.m
 delete mode 100644 WLPageViewController/PageViewController.xib
 delete mode 100644 WLPageViewController/WLPageViewController-Info.plist
 delete mode 100644 WLPageViewController/WLPageViewController-Prefix.pch
 delete mode 100644 WLPageViewController/WLPageViewController.h
 delete mode 100644 WLPageViewController/WLPageViewController.m
 delete mode 100644 WLPageViewController/damping.m
 delete mode 100644 WLPageViewController/en.lproj/InfoPlist.strings
 delete mode 100644 WLPageViewController/main.m
 rename WLContainerControllers/WLContainerControllers/main.m => main.m (100%)

Это испортило каталог who.

Связанные журналы:

commit 0eaebf9a4842e53a19d0ffbddf1dadee69ef4e11
Merge: 3093049 1efe88d
Author: Ling Wang <[email protected]>
Date:   Tue Jun 25 18:02:27 2013 -0500

    Merge commit '1efe88dd79cb6fd550fceaaa10d4b22dc44fb9df'

commit 1efe88dd79cb6fd550fceaaa10d4b22dc44fb9df
Author: Ling Wang <[email protected]>
Date:   Tue Jun 25 18:02:27 2013 -0500

    Squashed 'WLContainerControllers/' changes from 755c342..2f2ca9a

    2f2ca9a Update project after moving LICENSE and README.md.
    d052945 Move LICENSE and README.md to top folder.

    git-subtree-dir: WLContainerControllers
    git-subtree-split: 2f2ca9ac87a7eebcac590ffba32577dc93c4963f

Я использую git 1.8.3.1, установленный через homebrew на OS X 10.8.4.

Что не так с моим использованием поддерева git? Как правильно его использовать? Спасибо.


person an0    schedule 25.06.2013    source источник
comment
Может ли фиксация выше по течению возиться с вашим поддеревом?   -  person usumoio    schedule 26.06.2013
comment
@IamJohnGalt Как? Как бы ни менялся восходящий поток, он должен сопоставляться только с подкаталогом WLContainerControllers, верно?   -  person an0    schedule 26.06.2013
comment
Это правда, я в тупике.   -  person usumoio    schedule 26.06.2013


Ответы (1)


Я считаю, что это связано с некоторыми ошибками git-subtree. В частности, после просмотра полных журналов после git subtree add я обнаружил, что моя история коммитов испорчена — нет никаких следов журналов коммитов супердерева (верхний каталог). Поэтому я очистил его вручную и переделал, используя последний git, извлеченный из github. Кажется, все в порядке. Я попробовал git subtree pull после изменения восходящего потока, и он тоже работает хорошо.

Является ли git-subtree слишком современным для использования в реальных проектах?

person an0    schedule 26.06.2013