remove how create git bitbucket git-subtree

how - git subtree push



Git Subtree solo un archivo o directorio (2)

Si entiendo, parece que solo desea fusionarse en un directorio determinado de un repositorio diferente, y desea que sea un subárbol en su repositorio. Voy a llamar al directorio de interés en project.git path_of_interest_in_project y llamar al destino en su repo directory_desination_path .

Intente agregar el project.git remoto como un control remoto, luego revise una de sus sucursales localmente. Luego use la git-subtree split para dividir solo el directorio de project.git que le interesa. Después, fíjelo en su repositorio mediante la combinación de subárbol.

git remote add project [email protected]:kicaj/projectname.git git branch project_master project/master

La rama project_master ahora debe almacenar el historial completo de su proyecto.

Entonces necesitarás usar el proceso de git-subtrees-split .

git checkout -f project_master git subtree split --squash --prefix=path_of_interest_in_project -b temp_branch

Ahora debería haber una rama llamada temp_branch contenga solo el directorio en el que está interesado. Ahora puede realizar una git-subtree-merge para incluir todo en su repositorio.

git checkout -f master git subtree merge --allow-unrelated-histories --prefix=directory_destination_path temp_branch

Esto debería fusionarse en el temp_branch en su rama maestra.

Yo uso Git Subtree como a continuación:

git subtree add --prefix=directory_destination_path --squash [email protected]:kicaj/projectname.git master

Pero en ruta: directory_destination_path copia todo el repositorio de projectname.git

¿Cómo copiar al subdirectorio directory_destination_path solo o solo algún archivo de projectname.git ?

EDITAR:
Una pregunta más:
¿Cómo actualizar los cambios de archivos (automáticos) en ambos repositorios siguen siendo los mismos? ¿Es posible?


Supongamos que desea agregar las images/ prefijo del repositorio de octocat git en el master referencia.

Supongamos que queremos usar el remoto alojado en https://github.com/octocat/octocat.github.io.git (Nota: GitHub devuelve error: Server does not allow request for unadvertised object en el siguiente comando de fetch si especifica un sha1 no asociado con el nombre ref)

Comenzando en la rama a la que desea agregar el subárbol, primero vamos a buscar el historial de confirmación deseado y verifique nuestra nueva rama

git fetch https://github.com/octocat/octocat.github.io.git master:tmp_octocat_master git checkout tmp_octocat_master

A continuación, vamos a crear un nuevo historial donde solo existan los archivos bajo nuestro prefijo deseado ( images/ ).

git subtree split --prefix=images -b subtree_split_branch

Finalmente, agreguemos este subárbol a nuestra rama deseada (probablemente la última rama en la que estabas, git checkout - )

git checkout - git subtree add --prefix=public/images subtree_split_branch

Ahora debería tener todos los archivos deseados en su rama actual con un historial completo de git.

Historia de Alt Squashed

En el momento desea que las confirmaciones de nuestro subárbol se aplasten en una única confirmación. Esto, hasta cierto punto, anula los propósitos de agregar un subárbol, pero tiene su lugar. La siguiente es una variación de lo que se describe anteriormente para limitar el historial ingresado en su repositorio.

Comenzando en la sucursal desea agregar el subárbol a:

git fetch --depth=1 https://github.com/octocat/octocat.github.io.git master:tmp_octocat_master git checkout tmp_octocat_master

Nota: estamos especificando --depth=1 en lo anterior ya que estamos usando --squash es el siguiente comando de git subtree split .

git subtree split --squash --prefix=images -b subtree_split_branch git checkout - git subtree add --prefix=public/images subtree_split_branch