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
submodule
proyecto 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..gitignore
archivos '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 --orphan
se puede utilizargit reset --hard
para eliminar los archivos sobrantes.git checkout --orphan <branch>
es porque todavía no tiene confirmaciones. Después de la primera confirmacióngit branch
imprime 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 --orphan
si eso te dejaría con una gran cantidad degit rm
egit mv
ing 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 --hard
xargs
?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 clean
puede eliminar archivos que no desea eliminar! Ejecutegit clean -ndx
primero para ver qué archivos eliminará antes de ejecutarlo de verdad con la-f
opción.Digamos que tiene una
master
rama con archivos / directorios:Paso a paso cómo hacer una rama vacía:
git checkout —orphan new_branch_name
ls -la |awk '{print $9}' |grep -v git |xargs -I _ rm -rf ./_
git rm -rf .
touch new_file
git add new_file
git commit -m 'added first file in the new branch'
git push origin new_branch_name
En 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
master
sucursal. 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