tipos tag repositorio origin example etiquetas eliminar crear git

tag - no puede ingresar al repositorio de git



git push tag (8)

Esto es lo que he hecho hasta ahora y diré que este procedimiento funcionó en Ubuntu 9.10, que tal vez tenía una versión diferente de git.

server: mkdir ~/git local: scp -r /../project [email protected]:~/git/ server: cd git cd project git init git add . git commit -a -m "initial" local: git clone [email protected]:/../git/project /home/name/project cd project capify . (from the ruby gem capistrano) git add . git commit -a -m "capified" git push

Cuando intento sacar esto, aparece este mensaje de error:

remote: error: refusing to update checked out branch: refs/heads/master remote: error: By default, updating the current branch in a non-bare repository remote: error: is denied, because it will make the index and work tree inconsistent remote: error: with what you pushed, and will require ''git reset --hard'' to match remote: error: the work tree to HEAD. remote: error: remote: error: You can set ''receive.denyCurrentBranch'' configuration variable to remote: error: ''ignore'' or ''warn'' in the remote repository to allow pushing into remote: error: its current branch; however, this is not recommended unless you remote: error: arranged to update its work tree to match what you pushed in some remote: error: other way. remote: error: remote: error: To squelch this message and still keep the default behaviour, set remote: error: ''receive.denyCurrentBranch'' configuration variable to ''refuse''. To ... ! [remote rejected] master -> master (branch is currently checked out) error: failed to push some refs to


Ahora es posible recurrir a un repositorio no desnudo (Git 2.3.0 febrero de 2015).
¡Y es posible cuando está presionando la rama que actualmente se está revisando en el repositorio remoto!

Ver commit 1404bcb por Johannes Schindelin ( dscho ) :

receive-pack : agregue otra opción para receive.denyCurrentBranch

Al sincronizar directorios de trabajo, puede ser útil actualizar la rama actual mediante '' push '' en lugar de '' pull '', por ejemplo, cuando se inserta una solución desde dentro de una VM o cuando se aplica una solución en la máquina del usuario (donde el desarrollador está no tiene la libertad de instalar un daemon ssh y mucho menos saber la contraseña del usuario).

La solución común - empujar en una rama temporal y luego fusionarse en la otra máquina - ya no es necesaria con este parche.

La nueva opción es:

updateInstead

Actualice el árbol de trabajo en consecuencia, pero se niega a hacerlo si hay cambios no confirmados.

Es decir:

git config receive.denyCurrentBranch updateInstead


Como ejecutó git init en el servidor, creó una dirección de trabajo, pero creo que en su lugar quería hacer un repositorio vacío .

Use un directorio de trabajo cuando desee agregar, editar y eliminar archivos en su proyecto localmente en su máquina de desarrollo.

Cuando desee compartir su proyecto, git init --bare project.git un repositorio git init --bare project.git mediante git init --bare project.git en el servidor, luego git init --bare project.git en su máquina y podrá acceder a él.

Si no quieres crear uno nuevo ahora puedes clonar tu proyecto en un nuevo repositorio desnudo por git clone --bare project new-bare-project.git


Como señalé en este post de heroku como configuración de git? empujar hacia repositorios de trabajo es un poco peligroso ya que cualquier trabajo en progreso no se toma en cuenta por el empuje, y es bastante fácil perder cualquier cambio no confirmado (básicamente, el CABEZAL de trabajo puede desfasar con la rama de trabajo CABEZA). Git ahora tiene una advertencia para informarle sobre esto: los detalles sangrientos están en el siguiente enlace:

git push a un repositorio no desnudo

Se recomienda que su repositorio publicado sea un repositorio simple que no tenga un árbol desprotegido. Los repos sin formato se crean utilizando la opción "git clone --bare".


En el lado del servidor, haz esto:

git config receive.denyCurrentBranch ignore

Entonces puedes presionar en local.



La respuesta de VonC fue útil, pero me tomó un tiempo darme cuenta de que para Windows el comando sería el siguiente sin los iguales.

d:/Repositories/repo.git>git config receive.denyCurrentBranch updateInstead

Mi versión es Git para Windows v2.11.1


Pruebe el siguiente comando:

git config receive.denyCurrentBranch warn


Tanto del lado del cliente como del servidor

d:/Repositories/repo.git>git config receive.denyCurrentBranch updateInstead

No funcionó para mí. Tanto la versión del cliente como la del servidor son 2.16.2.windows.1

Agregué esto a // File-server / projectFolder / .git / config

[receive] denyCurrentBranch = updateInstead

Esto funciona para Windows. No necesita init --bare