Estoy trabajando en un entorno de equipo y ya existe un .gitignorearchivo.
Quiero agregar más elementos al .gitignorearchivo, 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-daemonun servidor web o Gitosis o Gitolite.fuente
.git/info/excludeen el directorio raíz del proyecto .core.excludesfilepuede especificar un archivo de exclusiones globales .ln -s .git/info/exclude .personalGitignoreLuego podemos agregar# ln -s .git/info/exclude .personalGitignore \n .personalGitignorea .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/excludeel repositorio.Si desea aplicar las mismas reglas de exclusión a todos los repositorios de su máquina, puede agregar lo siguiente al
.gitconfigarchivo 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/updatey 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-shellacceso en lugar de acceso no restringido. Cree un usuario de git de propósito especial y~git/.ssh/authorized_keysagregue 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.sin reenvío de agentes, sin reenvío de puertos, sin pty, sin reenvío X11, command = "env myorg_git_user = joeuser / usr / local / bin / git-shell -c \ "$ {SSH_ORIGINAL_COMMAND: -} \" "ssh-rsa AAAAB3 ... 2iQ == [email protected]Dependiendo de su configuración local, es posible que deba ajustar la ruta a
git-shell. Recuerde quesshdes muy paranoico acerca de los permisos del.sshdirectorio, 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_uservariable 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
--sharedopción. (Veacore.sharedRepositoryen lagit configdocumentación y--shareden lagit initdocumentació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