Quiero mostrar algunos de mis trabajos cargándolos en mi cuenta de GitHub. Sin embargo, hay algunos archivos que contienen contraseñas, como conexiones de bases de datos.
¿Hay alguna manera de marcar un archivo como no compatible con Git para que no pueda aparecer en GitHub?

.gitignore. AFAIK no hay una forma 100% completa de decirgitque evite cometer un archivo específico en todos los casos. Aunque esto puede verse como una característica ... que permite que los comandos explícitos anulen las configuraciones genéricas.Respuestas:
Primero, no hay forma de tener algunos archivos y confirmaciones visibles en su repositorio local de Git pero de alguna manera no visibles en GitHub; Si tiene un archivo confirmado en Git, aparecerá en GitHub.
En segundo lugar, no existe una forma simple y práctica de marcar un archivo individual como "no transmisible". Pero definitivamente hay una forma de ignorar un archivo en un repositorio de Git: agregando los archivos, incluida su ruta relativa si necesario — a un
.gitignorearchivo :Crear un básico
.gitignorees bastante fácil ya que es solo un archivo de texto sin formato. Entonces, por ejemplo, si tuviera unconfig.phparchivo en su raíz, haría esto; suponiendo que está utilizando PHP, pero el concepto se aplica a cualquier configuración. También estoy usando Nano como mi editor de texto en este ejemplo, pero siéntase libre de usar el editor de texto que normalmente usa para esto:Y simplemente agregue ese nombre de archivo a ese archivo:
Guárdelo y ahora Git simplemente ignorará ese archivo.
Dicho esto, lo que me gusta hacer para configuraciones como esta es mantener una configuración de muestra / ejemplo neutralizada de detalles confidenciales en el repositorio, por lo que tengo alguna referencia sobre qué formato de archivo de configuración es un archivo llamado algo así:
De esa manera, usted sabe exactamente cómo se
config.phpdebe configurar el archivoconfig.SAMPLE.phpy puede asegurarse de queconfig.phpGit nunca toque el archivo real .Además, si planea mostrar su código, debe esperar que alguien intente tomar ese código e implementarlo en su propio sistema de alguna manera. Recuerde, no somos usted y sin un archivo de configuración de muestra en su repositorio, la gente realmente no entenderá cómo implementar el código por su cuenta. Diablos, incluso podrían pensar que no eres competente porque no proporcionaste un ejemplo de configuración básica.
fuente
database_url = Environment.DATABASE_URLy dejar un comentario arriba como# postgres://username:password@localhost/dbname.También puede agregar un enlace previo a la confirmación para implementar comprobaciones de cordura. El directorio
.git/hooksde cada repositorio git tiene algunos scripts de muestra.El script llamado
pre-commitse ejecuta si existe antes de cada confirmación y un valor de retorno distinto de cero anula la confirmación.Por ejemplo, podría tener un script simple como este:
Y si eso
filenamecoincide, la confirmación falla.fuente
.gitignorees una práctica muy común, y comúnmente entendida, para cualquiera que use Git. Pero la mayoría de los usuarios de Git no utilizan realmente un script previo a la confirmación. Requiere cierto conocimiento de la configuración y requiere alguna razón verdadera por la cual un método como este sería preferible a simplemente usar un.gitignorearchivo. Pero esto es muy útil para algunos casos más complejos, pero definitivamente es un concepto que usaría cuando realmente sepa que necesita usarlo.Lo que dijo @JakeGould. En algunos casos, también puede utilizar bits de archivo especiales como
skip-worktreeoassume-unchangedque se pueden configurar de la siguiente manera; para las diferencias entre los dos, vea esta respuesta de desbordamiento de pila :Lo que luego ocultará cambios adicionales a un archivo ya existente y que podría usar si realmente desea que un archivo esté allí después de cada extracción. Pero le aconsejaría que solo lo use si realmente sabe lo que está haciendo.
fuente
Usa un me
.gitignoregusta @JakeGould dijo. Además, alguna información relacionada:.gitignoreevita que los archivos sean rastreados; si ya están rastreados, usegit rm --cachedpara eliminarlos$GIT_DIR/info/excludetambién serán ignorados~/.gitconfigtambién se ignoran.Consulte la documentación oficial de Git para más detalles.
fuente
Para ampliar las respuestas de Jake y 46: una muy buena práctica es tener una extensión consistente que use para los archivos en los que incluya información privada, y use
.gitignoresiempre para excluir archivos con esa extensión globalmente (usando el.gitconfigarchivo como se menciona en otro lugar para que siempre se ignore) para tu usuario).De esa manera, puede tener por ejemplo:
y si ha excluido
*.excglobalmente, sabe que no se confirmará, incluso si olvida excluir individualmente ese archivo específico.fuente