Estamos utilizando un repositorio git para almacenar nuestro proyecto. Tenemos nuestras sucursales que parten de la sucursal original. Pero ahora queremos crear un nuevo proyecto pequeño para rastrear cierta documentación. Para eso, querríamos crear una nueva rama vacía para comenzar a almacenar nuestros archivos, y quisiera que otros usuarios de la red clonen esa rama.
¿Cómo podemos hacer eso?
Intenté algunas cosas, pero no funcionaron.
$ mkdir proj_doc; cd proj_doc
$ git init
$ git add .
$ git commit -m 'first commit'
$ git br proj_doc
$ git co proj_doc
$ git br -d master
$ git push origin proj_doc
Parece empujar bien la rama, pero cuando hago una extracción o extracción, descarga información de otras ramas, y luego también obtengo algunos archivos adicionales de otros proyectos. ¿Cuál es la mejor solución?
git
branch
git-branch
fazineroso
fuente
fuente

submoduleproyecto original, por ejemplo,docs/señalando a ese otro repositorio. O, si desea fusionar el código más tarde, agréguelo como control remoto..gitignorearchivos 'd, y también cambiar constantemente entre las dos raíces (ramas). Así que también estoy para el nuevo enfoque de repositorio, en una nueva carpeta, con los mismos controles remotos y empujando a otra rama.Respuestas:
Puedes crear una rama como huérfana:
Esto creará una nueva sucursal sin padres. Luego, puede borrar el directorio de trabajo con:
y agregue los archivos de documentación, confírmelos y póngalos en github.
Una extracción o recuperación siempre actualizará la información local sobre todas las ramas remotas. Si solo desea obtener / obtener la información para una única rama remota, debe especificarla.
fuente
git checkout --orphan <branch>; No veo ningún listado de <branch> engit branch.git checkout --orphanse puede utilizargit reset --hardpara eliminar los archivos sobrantes.git checkout --orphan <branch>es porque todavía no tiene confirmaciones. Después de la primera confirmacióngit branchimprime la nueva rama.La respuesta correcta es crear una rama huérfana. Explico cómo hacer esto en detalle en mi blog. (Enlace archivado)
fuente
Haga una nueva rama vacía como esta:
Si sus archivos proj-doc ya están en una confirmación bajo un subdirectorio, puede hacer la nueva rama de esta manera:
lo que podría ser más conveniente que
git branch --orphansi eso te dejaría con una gran cantidad degit rmegit mving hacer.Tratar
y vea si eso ayuda con su problema de buscar demasiado. Además, si realmente solo desea obtener una sola rama, lo más seguro es especificarla en la línea de comandos.
fuente
git checkout --orphan new-branch; git reset --hardxargs?Si su versión de git no tiene la opción --orphan, se debe usar este método:
Después de hacer algo de trabajo:
fuente
git cleanpuede eliminar archivos que no desea eliminar! Ejecutegit clean -ndxprimero para ver qué archivos eliminará antes de ejecutarlo de verdad con la-fopción.Digamos que tiene una
masterrama con archivos / directorios:Paso a paso cómo hacer una rama vacía:
git checkout —orphan new_branch_namels -la |awk '{print $9}' |grep -v git |xargs -I _ rm -rf ./_git rm -rf .touch new_filegit add new_filegit commit -m 'added first file in the new branch'git push origin new_branch_nameEn el paso 2, simplemente eliminamos todos los archivos localmente para evitar confusiones con los archivos de su nueva sucursal y los que mantiene en la
mastersucursal. Luego, desvinculamos todos esos archivos en el paso 3. Finalmente, el paso 4 y posteriores están trabajando con nuestra nueva rama vacía.Una vez que haya terminado, puede cambiar fácilmente entre sus ramas:
fuente
En base a esta respuesta de Hiery Nomus .
Puedes crear una rama como huérfana:
Esto creará una nueva sucursal sin padres. Luego, puede borrar el directorio de trabajo con:
Y luego simplemente confirma la rama con confirmación vacía y luego empuja
fuente
Consulte esta documentación , tiene detalles claros sobre
fuente
Encontré esta ayuda:
fuente