Solución:
Personalmente, uso Maven gitignore y Java gitignore para un proyecto Maven. Es posible que deba ajustarlo con los idiomas utilizados en su proyecto Maven.
https://github.com/github/gitignore/blob/master/Maven.gitignore
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
.mvn/wrapper/maven-wrapper.jar
https://github.com/github/gitignore/blob/master/Java.gitignore
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
¿Es una buena práctica realizar
mvn clean
antes de comprometerme, ¿o agrego ciertos archivos al archivo .gitignore?
Agrega reglas a tu .gitignore
file primero, lo que hace que Git ignore correctamente los archivos no deseados. Comprender el diseño de directorios estándar de Maven también lo ayudará a determinar mejor cuáles son los directorios no deseados.
Mira esto:
https://www.gitignore.io/api/maven
En general, debe ignorar todos los objetivos y metadatos. Si ignora los objetivos, mvn clean
no es necesario antes de empujar.
¿Es una buena práctica realizar mvn clean antes de confirmar, o agrego ciertos archivos al archivo .gitignore?
Ejecutandomvn clean
antes de comprometerse no es práctico en absoluto. Los desarrolladores pueden olvidar eso y, además, deben reconstruir sus proyectos en cada confirmación.
La forma correcta es usar .gitignore
para especificar archivos que se ignorarán en el seguimiento. Simplemente confírmelo y envíelo a la rama remota y todos los desarrolladores podrían trabajar con las mismas reglas.
Quiero saber qué archivos de un proyecto de Maven deben comprometerse con git.
Quiere enviar / enviar archivos que quiere versionar / rastrear.
Pero es muy amplio. No puedes tener reglas solo para Maven. Maven tiene algunas especificidades (target
carpeta, por ejemplo, que desea ignorar) pero probablemente tenga más cosas que ignorar.
En general, desea confirmar / enviar el código fuente y los archivos de configuración de la aplicación, como pom.xml
o cualquier archivo de configuración utilizado en su compilación, pero también puede agregar cualquier otro tipo de archivo. Por ejemplo, enviar un registro de cambios o incluso un documento de Word (más raro pero posible) también puede ser válido.
Generalmente, lo que no desea comprometer son archivos que:
- depende de la máquina del desarrollador (IDE, archivos personalizados)
- creado por una operación de construcción (
target
carpeta en Maven, pero también podría tener otras carpetas de acuerdo con su configuración de pom) - archivos temporales que se utilizan durante la compilación, la ejecución de la aplicación o aún las operaciones de lanzamiento.
- archivo