Estoy trabajando en un entorno de equipo y ya existe un .gitignore
archivo.
Quiero agregar más elementos al .gitignore
archivo, pero tampoco quiero verificar este archivo. ¿Es posible configurar archivos personalizados para ignorar que solo se aplican a mí?
Además, quiero darle a alguien acceso de solo lectura a un repositorio privado de git en nuestro servidor, si agrego su clave SSH a nuestro servidor, obtendrán acceso completo como todos los demás. ¿Cómo puedo limitarlo a solo lectura, no se permiten confirmaciones?
Respuestas:
.git/info/exclude
. Vergitignore(5)
.git-daemon
un servidor web o Gitosis o Gitolite.fuente
.git/info/exclude
en el directorio raíz del proyecto .core.excludesfile
puede especificar un archivo de exclusiones globales .ln -s .git/info/exclude .personalGitignore
Luego podemos agregar# ln -s .git/info/exclude .personalGitignore \n .personalGitignore
a .gitignoreSé que llego un poco tarde a la conversación, pero es posible que desee considerar usar
Como dice el documento de ayuda de git:
Énfasis mío. Continúa diciendo
Por lo tanto, tenga en cuenta que deberá estar al tanto de cualquier cambio anterior realizado en estos archivos.
En el caso de que desee comenzar a rastrear el archivo nuevamente, todo lo que tiene que hacer es usar
Espero que esto ayude a los futuros espectadores de esta publicación.
fuente
Para la parte ssh, debería considerar usar Gitolite (un reemplazo de la gitosis).
fuente
Como dijo Fred Frodo, puede poner sus reglas de exclusión privadas en
.git/info/exclude
el repositorio.Si desea aplicar las mismas reglas de exclusión a todos los repositorios de su máquina, puede agregar lo siguiente al
.gitconfig
archivo en su directorio de usuario.Luego agregue sus patrones de exclusión a
~/.gitexclude
.fuente
Puede que le interese un gancho de actualización que escribió Junio y que Carl mejoró. Coloque el código a continuación
$GIT_DIR/hooks/update
y no olvide habilitarlo conchmod +x
.Con este gancho en su lugar, entonces le da a usuarios o grupos particulares para realizar cambios en el repositorio. Cualquier otra persona que pueda verlo tiene acceso de solo lectura.
Si esta persona aún no tiene acceso al host donde vive su repositorio, tal vez esa persona debería tener solo
git-shell
acceso en lugar de acceso no restringido. Cree un usuario de git de propósito especial y~git/.ssh/authorized_keys
agregue la clave SSH del forastero en el siguiente formulario. Tenga en cuenta que la clave debe estar en una línea larga, pero la he envuelto a continuación para facilitar la presentación.Dependiendo de su configuración local, es posible que deba ajustar la ruta a
git-shell
. Recuerde quesshd
es muy paranoico acerca de los permisos del.ssh
directorio, así que desactive sus bits de escritura de grupo y todos los archivos debajo de él.Canalizar a todos a través del usuario de git significa que debe poder diferenciar a las personas, y este es el propósito de la
myorg_git_user
variable de entorno. En lugar de depender de un incondicionalusername=$(id -u -n)
, modifique su gancho de actualización para usarlo:Con esta configuración, su amigo con acceso de solo lectura se clonará con un comando similar al siguiente. La ruta particular dependerá de su configuración. Para que la ruta agradable funcione, reubique su repositorio en el directorio de inicio del usuario de git o cree un enlace simbólico que apunte a él.
pero no podrá realizar actualizaciones.
Dijiste que estás trabajando en un entorno de equipo, así que supongo que tu repositorio central se creó con la
--shared
opción. (Veacore.sharedRepository
en lagit config
documentación y--shared
en lagit init
documentación ). Asegúrese de que el nuevo usuario de git sea miembro del grupo del sistema que les da acceso a todos a su repositorio central.fuente