Cómo usar el comando gitignore en git

119

Estoy trabajando por primera vez en git. Empujé mi rama en github y empujó toda la biblioteca y los documentos al github. Ahora, ¿qué puedo hacer y cómo puedo usar el comando gitignore para evitar el mismo error nuevamente?

usuario1559230
fuente
1
.gitignorees un archivo en su directorio raíz de git. Agregue los patrones de nombre para los archivos que desea ignorar y los archivos se ignorarán automáticamente.
LonelyWebCrawler
Estoy en ubuntu. ¿Puede decir la ruta del directorio raíz de git?
user1559230
2
Es el directorio donde usaste git init. El .gitdirectorio se encuentra allí.
LonelyWebCrawler
2
Para aquellos que no saben cómo usar gitignore: vaya a gitignore.io , puede escribir todas las herramientas que está usando (Symfony, CakePHP, ZendFramework, wordpress, gruñido, texto sublime, netbeans, etc.). ...) y generará el archivo git ignore para usted. Si no sabe cómo usar gitignore, creo que la mejor manera de aprenderlo es mirar algún buen ejemplo de caso de uso (como el generado por gitignore.io. Si desea usarlo desde la línea cmd (forma geek ) vea este tutorial: vimeo.com/70609819
DevWL

Respuestas:

162

Entonces, según lo que dijo, estos archivos son bibliotecas / documentación que no desea eliminar pero tampoco desea presionar github. Digamos que usted tiene su proyecto en carpeta your_projecty un directorio doc: your_project/doc.

  1. Elimínelo del directorio del proyecto (sin eliminarlo realmente): git rm --cached doc/*
  2. Si aún no tienes una .gitignore, puedes hacer un interior derecho de la carpeta del proyecto: project/.gitignore.
  3. Ponga doc/*el .gitignore
  4. Prepara el archivo para confirmar: git add project/.gitignore
  5. Comprometerse: git commit -m "message".
  6. Empuje su cambio a github.
u19964
fuente
¿Puede decirme cómo escribir el archivo .gitignore? es decir, cómo escribir la ruta de las carpetas y archivos que quiero ignorar dentro del archivo .gitignore. Gracias
user1559230
Gracias por tu respuesta. Antes de confirmar, tuve que ejecutar git add -A
user1559230
4
Hola, el gitignore es solo un archivo de texto sin formato. En realidad, es .gitignore (DOTgitignore). Simplemente ingrese el nombre del archivo / tipo de archivo que desea que git ignore, uno por línea. Ejemplo: sujee.net/tech/articles/gitignore
u19964
42

Si no tiene un archivo .gitignore, primero use:

touch .gitignore

luego este comando para agregar líneas en su archivo gitignore:

echo 'application/cache' >> .gitignore

Tenga cuidado con las nuevas líneas

Serdar Değirmenci
fuente
No es necesario toucharchivar primero. >>es también >si el archivo aún no existe. echoagrega una nueva línea al final de la salida. Puede detener eso con -n. Si necesita varios ignora, o bien hace varios ecos, o uso -e, de la siguiente manera: echo -e "**/cache/\n**.pyc" >> .gitignore. El doble asterisco también coincide con todos los archivos que se excavan en carpetas de forma recursiva. Úselo /al final de las carpetas, por si acaso.
mazunki
1
@Andrew tl; dr: Agrega cada archivo ignorado con echo "file_to_be_ignored" >> .gitignore, sin necesidad de hacer nada más. Termine los nombres de las carpetas con /como echo "**/modules/" >> .gitignore.
mazunki
¿Por qué se eliminó mi comentario
Andrew
12

git ignore es una convención en git. Establecer un archivo con el nombre de .gitignore ignorará los archivos en ese directorio y los directorios más profundos que coinciden con los patrones que contiene el archivo. El uso más común es tener un archivo como este en el nivel superior. Pero puede agregar otros más profundos en la estructura de su directorio para ignorar aún más patrones o dejar de ignorarlos para ese directorio y otros más profundos.

Del mismo modo, puede "dejar de ignorar" ciertos archivos en una estructura más profunda o un subconjunto específico (es decir, ignora * .log pero desea seguir rastreando important.log) especificando patrones que comienzan con !. p.ej:

*.log !important.log

ignorará todos los archivos de registro, pero hará un seguimiento de los archivos llamados important.log

Si está rastreando archivos que quería ignorar, elimínelos, agregue el patrón a su archivo .gitignore y agregue todos los cambios

# delete files that should be ignored, or untrack them with 
# git rm --cached <file list or pattern>

# stage all the changes git commit
git add -A 

a partir de ahora, su repositorio no tendrá seguimiento.

Si desea limpiar su historial, puede

# if you want to correct the last 10 commits
git rebase -i --preserve-merges HEAD~10 

luego marque cada confirmación con eo edit. Guarde el plan. Ahora git reproducirá su historial deteniéndose en cada confirmación que marcó con e. Aquí borra los archivos que no desea git add -Ay luego git rebase --continuehasta que haya terminado. Tu historia estará limpia. Asegúrese de decirle a sus compañeros de trabajo, ya que tendrá que forzar el empuje y ellos tendrán que reajustar lo que todavía no empujaron.

Adam Dymitruk
fuente
8

Hay un archivo en su directorio raíz de git llamado .gitignore. Es un archivo, no un comando. Solo necesita insertar los nombres de los archivos que desea ignorar, y se ignorarán automáticamente. Por ejemplo, si desea ignorar todos los archivos de autoguardado de emacs, que terminan en ~, puede agregar esta línea:

*~

Si desea eliminar los archivos no deseados de su rama, puede utilizar git add -A, que " elimina archivos que ya no están en el árbol de trabajo ".

Nota: Lo que llamé el "directorio raíz de git" es simplemente el directorio en el que usó git initpor primera vez. También es donde puede encontrar el .gitdirectorio.

LonelyWebCrawler
fuente
¿Qué pasará con los archivos ya
enviados
4

Si no tiene un archivo .gitignore. Puede crear uno nuevo

touch .gitignore

Y puede excluir una carpeta ingresando el siguiente comando en el archivo .gitignore

/folderName

inserte este archivo en su repositorio de git para que cuando una nueva persona clone su proyecto no tenga que agregar el mismo de nuevo

karthik vishnu kumar
fuente
2

Hay varias formas de usar gitignore git

  • especificando por el nombre de archivo específico. por ejemplo, para ignorar un archivo
    llamado readme.txt, solo necesita escribir readme.txt en el archivo .gitignore.
  • también puede escribir el nombre de la extensión del archivo. Por ejemplo, para
    ignorar todos los archivos .txt, escriba * .txt.
  • también puede ignorar una carpeta completa. por ejemplo, desea ignorar la
    carpeta llamada test. Luego simplemente escriba test / en el archivo.

simplemente cree un archivo .gitignore y escriba lo que desee para ignorar un archivo gitignore de muestra:

# NPM packages folder.
node_modules

# Build files
dist/

# lock files
yarn.lock
package-lock.json

# Logs
logs
*.log
npm-debug.log*

# node-waf configuration
.lock-wscript

# Optional npm cache directory
.npm

# Optional REPL history
.node_repl_history

# Jest Coverage
coverage

.history/

Puede encontrar más en la documentación de git gitignore

Afaq Ahmed Khan
fuente
1

en mi mac encontré este archivo .gitignore_global ... estaba en mi directorio de inicio oculto, así que hazlo ls -altrpara verlo.

Agregué archivos de eclipse que quería que git ignorara. el contenido se ve así:

 *~
.DS_Store
.project
.settings
.classpath
.metadata
j2emanue
fuente
cuando puse el archivo .gitignore en la carpeta de mi proyecto, arruinó mi proyecto eclipse localmente. ¿Sabes por qué puede pasar eso y cómo prevenirlo? por ahora me mantengo alejado de .gitignore.
JesseBoyd
Ya no uso eclipse. Inteilji ahora
j2emanue