usar rastreados para ignorar example crear como comando cambios archivo git gitignore ignore

rastreados - Cómo decirle a git que ignore líneas individuales, es decir, gitignore para líneas específicas de código



gitignore java (2)

Así es como puedes hacerlo con los filtros de git :

  1. Crear / Abrir archivo de gitattributes:
    • <project root> /. gitattributes (se confirmará en repositorio)
      O
    • <project root> /. git / info / attributes (no se comprometerá con el repositorio)
  2. Agregue una línea que defina los archivos a filtrar:
    • *.rb filter=gitignore , es decir, filtro de ejecución llamado gitignore en todos los archivos *.rb
  3. Defina el filtro gitignore en su gitconfig :
    • $ git config --global filter.gitignore.clean "sed ''/#gitignore$/''d" , es decir, eliminar estas líneas
    • $ git config --global filter.gitignore.smudge cat , es decir, no hacer nada al extraer el archivo del repositorio

Notas:
Por supuesto, esto es para archivos ruby, aplicados cuando una línea termina con #gitignore , aplicado globalmente en ~/.gitconfig . Modifique esto como lo necesite para sus propósitos.

¡¡Advertencia!!
Esto deja su archivo de trabajo diferente del repositorio (por supuesto). ¡Cualquier revisión o actualización significará que estas líneas se perderán! Este truco puede parecer inútil, ya que estas líneas se pierden repetidamente al momento del check out, rebase o pull, pero tengo un caso de uso específico para poder usarlo.

Solo git stash save "proj1-debug" mientras el filtro está inactivo (solo deshabilítelo temporalmente en gitconfig o algo así). De esta forma, mi código de depuración siempre se puede git stash apply en mi código en cualquier momento sin temor a que alguna vez estas líneas sean accidentalmente comprometidas.

Tengo una idea posible para resolver estos problemas, pero intentaré implementarla en otro momento.

Gracias a Rudi y jw013 por mencionar filtros y gittributes git.

Esta pregunta ya tiene una respuesta aquí:

.gitignore puede ignorar archivos completos, pero ¿hay alguna manera de ignorar líneas específicas de código mientras se codifica?

Con frecuencia y repetidamente agrego las mismas líneas de depuración en un proyecto, solo para tener que recordar eliminarlas antes de comprometerme. Me gustaría simplemente mantener las líneas en el código y hacer que las ignoren.


Tuve un problema similar al escribir el código de Java. Mi solución fue marcar código que no quería confirmar y luego agregar un enlace precompromiso que buscaría mi marcado:

#!/bin/bash # # This hook will look for code comments marked ''//no-commit'' # - case-insensitive # - dash is optional # - there may be a space after the // # noCommitCount=$(git diff --no-ext-diff --cached | egrep -i --count "(@No|/////s?no[ -]?)commit") if [ "$noCommitCount" -ne "0" ]; then echo "WARNING: You are attempting to commit changes which include a ''no-commit''." echo "Please check the following files:" git diff --no-ext-diff --cached --name-only -i -G"(@no|////s?no-?)commit" | sed ''s/^/ - /'' echo echo "You can ignore this warning by running the commit command with ''--no-verify''" exit 1 fi