Lo más fácil es, probablemente, tener a quien hospeda la etiqueta repo y confirmar el árbol en particular que desee. Por ejemplo,
En aguas arriba:
git tag quickie $(git commit-tree $(git rev-parse HEAD:path/to/dir) </dev/null)
que:
git fetch upstream quickie
Si desea que la cesión temporal aguas arriba para rastrear automáticamente un sub-árbol en una rama, puede hacerlo (una versión adecuada descifrado de) algo como esto:
sed -n 's,^[^ ]* [^ ]* refs/heads/master$,git update-ref refs/heads/master-subtree -m "Auto-tracking master" $(git commit-tree master:subtree -m "Auto-tracking master subtree" $(test -r refs/heads/master-subtree \&\& echo -p refs/heads/master-subtree)),p' | sh -x
que es más simple de lo que parece. Prueba esto:
mkdir ~/tryitout && cd ~/tryitout && git init foo && git init bar --bare
cat >bar/hooks/post-receive <<'EOF'
sed -n 's,^[^ ]* [^ ]* refs/heads/master$,git update-ref refs/heads/master-subtree -m "Auto-tracking master" $(git commit-tree master:subtree -m "Auto-tracking master subtree" $(test -r refs/heads/master-subtree \&\& echo -p refs/heads/master-subtree)),p' | sh -x
EOF
chmod a+x bar/hooks/post-receive
cd foo
mkdir subtree && touch subtree/oooo && git add . && git commit -am-
git push ../bar master
Late Actualización -
Si va a compartir un sistema de archivos con el otro repo, se puede hacer esto:
git clone --no-checkout /path/to/local/repo/.git subtree
cd subtree
git commit-tree origin/rev:subtree </dev/null | xargs git checkout -B peek
y puede rebotar en torno a las cambiará el rev para adaptarse, origen/maestro: incluir, origen/siguiente: incluir, origen/v1.4: somewhereelsenow, lo que sea.
Generalmente tengo una rama "vacía" para grandes repositorios. Git maneja un caso especial de un directorio vacío:
git mktree </dev/null | xargs git commit-tree | xargs git checkout -b empty
p.s. HEAD puede ser, por supuesto, cualquier rev que desee – jthill
Pero, ¿entonces no sería necesario mantener la etiqueta? Es decir, si una parte relevante del repos cambia, entonces tendríamos que seleccionar cuidadosamente ese cambio en la etiqueta. ¿O estoy malentendido? –
@AndrewEisenberg Necesitas una referencia para todo lo que vas a buscar. Añadiré una línea para mostrar cómo crear un subárbol automático en sentido ascendente en un subárbol – jthill