remota rama origin example crear cambiar git branch git-branch

rama - git pull origin master



Cómo crear una nueva rama vacía para un nuevo proyecto (5)

Estamos utilizando un repositorio git para almacenar nuestro proyecto. Tenemos nuestras sucursales partiendo de la sucursal original. Pero ahora queremos crear un pequeño proyecto nuevo para rastrear parte de la documentación. Para eso nos gustaría crear una nueva rama vacía para comenzar a almacenar nuestros archivos, y me gustaría que otros usuarios de la red clonen esa rama.

¿Cómo podemos hacer eso?

Probé 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 la rama bien, pero cuando hago una búsqueda 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?


Digamos que tienes una rama master con archivos / directorios:

> git branch master > ls -la # (files and dirs which you may keep in master) .git directory1 directory2 file_1 .. file_n

Paso a paso cómo hacer una rama vacía:

  1. git checkout —orphan new_branch_name
  2. Asegúrese de estar en el directorio correcto antes de ejecutar el siguiente comando:
    ls -la |awk ''{print $9}'' |grep -v git |xargs -I _ rm -rf ./_
  3. git rm -rf .
  4. touch new_file
  5. git add new_file
  6. git commit -m ''added first file in the new branch''
  7. 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 rama master . Luego, desvinculamos todos esos archivos en el paso 3. Finalmente, el paso 4 y después están trabajando con nuestra nueva rama vacía.

Una vez que haya terminado, puede cambiar fácilmente entre sus ramas:

git checkout master git checkout new_branch


Haz una nueva rama vacía como esta:

true | git mktree | xargs git commit-tree | xargs git branch proj-doc

Si sus archivos de proj-doc ya están en un commit bajo un solo subdirectorio, puede hacer la nueva rama de esta manera:

git commit-tree thatcommit:path/to/dir | xargs git branch proj-doc

lo que podría ser más conveniente que la git branch --orphan si eso te dejara con un montón de git rm y git mv ing.

Tratar

git branch --set-upstream proj-doc origin/proj-doc

y ver si eso ayuda con su problema de obtener demasiado. Además, si realmente solo desea obtener una única rama, es más seguro especificarla en la línea de comandos.


La respuesta correcta es crear una rama huérfana. Explico cómo hacer esto en detalle en mi blog: http://sidja.in/post/62663941071

...

Antes de comenzar, actualice a la última versión de GIT. Para asegurarse de que está ejecutando la última versión, ejecute

which git

Si escupe una versión anterior, es posible que deba aumentar su RUTA con la carpeta que contiene la versión que acaba de instalar.

Ok estamos listos Después de hacer un cd en la carpeta que contiene tu git checkout, crea una rama huérfana. Para este ejemplo, nombraré la rama "mybranch".

git checkout --orphan mybranch

Eliminar todo en la rama huérfana.

git rm -rf .

Hacer algunos cambios

vi README.txt

Añade y confirma los cambios.

git add README.txt git commit -m "Adding readme file"

Eso es. Si tu corres

git log

Notarás que el historial de confirmaciones comienza desde cero. Para volver a la rama maestra, simplemente ejecuta

git checkout master

Puedes volver a la rama huérfana ejecutando

git checkout mybranch


Puede crear una rama como un huérfano:

git checkout --orphan <branchname>

Esto creará una nueva rama sin padres. Luego, puede borrar el directorio de trabajo con:

git rm --cached -r .

y agregue los archivos de documentación, confírtelos y empújelos a github.

Una extracción o recuperación siempre actualizará la información local sobre todas las sucursales remotas. Si solo desea extraer / obtener la información de una sola rama remota, debe especificarla.


Si la versión de git no tiene la opción --orphan, este método debe usarse;

git symbolic-ref HEAD refs/heads/<newbranch> rm .git/index git clean -fdx

Despues de hacer algunos trabajos

git add -A git commit -m <message> git push origin <newbranch>