Załóżmy dwa git repozytoria z niektórych plików w nich:Czy mogę wykonać scalenie poddrzewa z podkatalogu?
ProjectA
+ a
+ b
ProjectB
+ foo/x
+ foo/y
+ bar/z
Teraz chcę to katalog foo
z ProjectB do Projecta.
O ile mi zrozumieć, kiedy robię git subtree add
z prefix
jest droga, którą powinien mieć w repozytorium odbiorczego, więc kiedy robię
git subtree add --prefix=project_b --squash URL_of_ProjectB
chciałbym skończyć z
ProjectA
+ a
+ b
+ project_b
+ foo/x
+ foo/y
+ bar/z
Czy mogę w jakiś sposób określić, że chcę tylko uzyskać foo
, aby uzyskać ten układ?
ProjectA
+ a
+ b
+ project_b
+ x
+ y
Czy zmienia to proces łączenia dalszych zmian w ProjectB na ProjectA? Myślałem, że mój scenariusz jest dokładnie tym, do czego służy 'git subtree', ale jeśli nie jest, co * może * być osiągnięte za jego pomocą? Może mogę zmienić układ mojego pliku, aby lepiej do niego pasował. – AndreKR
Tak, musisz ponownie wykonać krok gałęzi filtra za każdym razem, gdy chcesz scalić zmiany z ProjectB do ProjectA. Strona podręcznika 'git subtree' wyjaśnia polecenie' git split', które jest podobne do polecenia 'branch-branch', które dałem. Ale jeśli możesz zmienić swój układ, może lepiej wyodrębnić wyrażenie 'foo' w oddzielnym repozytorium i dodać je jako podtree do obu projektów. Może to jest lepsze, skoro 'b' jest jakimś rodzajem lib? – gregor
To jest problem, to nie jest tak naprawdę. Gdyby tak było, zrobiłbym go submodułem. Jest to raczej kod, który jest dzielony między dwa projekty ... lista krajów, niektóre szablony itp. – AndreKR