2012-09-19 26 views
73

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

+1

'.gitignore' es 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

+0

Estoy en Ubuntu. ¿Puedes decir la ruta del directorio raíz de git – user1559230

+2

? Es el directorio donde usaste 'git init'. El directorio '.git' está ubicado allí. – LonelyWebCrawler

Respuesta

101

De acuerdo con lo que ha dicho, estos archivos son bibliotecas/documentación que no desea eliminar, pero tampoco desea presionar github. Supongamos que tiene su proyecto en la carpeta your_project y un directorio doc: your_project/doc.

  1. Retire del directorio del proyecto (sin llegar a eliminarlo): git rm --cached doc/*
  2. Si aún no dispone de una .gitignore, puede hacer una derecha dentro de la carpeta del proyecto: project/.gitignore.
  3. Deja doc/* en el .gitignore
  4. etapa el archivo de cometer: git add project/.gitignore
  5. Commit: git commit -m "message".
  6. Presione su cambio a github.
+0

puede decirme cómo escribir el archivo .gitignore, es decir, cómo escribir la ruta de las carpetas y archivos que deseo ignorar dentro del archivo .gitignore. Gracias – user1559230

+0

Gracias por su respuesta. Antes de confirmar tuve que ejecutar git agregar -A – user1559230

+4

Hola, el gitignore es solo un archivo de texto sin formato. .gitignore (DOTgitignore). Simplemente ponga el nombre del archivo/tipo de archivo que desea que git ignore, uno por línea. Ejemplo: http://www.sujee.net/tech/articles/gitignore/ – qusr

7

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 usted quiere hacer caso omiso de todas las emacs archivos de guardado automático, que terminan en ~, entonces se podría añadir esta línea:

*~ 

Si desea eliminar los archivos no deseados de su rama, puede utilizar git add -A, que "removes files that are no longer in the working tree".

Nota: Lo que llamé el "directorio raíz de git" es simplemente el directorio en el que usaste git init por primera vez. También es donde puede encontrar el directorio .git.

+0

lo que sucederá con los archivos ya insertados que no quiero – user1559230

7

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

Del mismo modo, se puede "Desactivar" ciertos archivos de una estructura más profunda o un subconjunto específico (es decir, ignorar * .log pero quieren aún rastrear important.log) por patrones que especifican que comienzan con !. por ejemplo:

*.log !important.log 

ignorará todos los archivos de registro, pero habrá un seguimiento de los archivos denominados important.log

Si está rastreando archivos que significaba ignorar, eliminar, añadir el patrón de que .gitignore archivo y agrega 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 los tendrá rastreados.

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 e o edit. Guarde el plan. Ahora git reproducirá su historial deteniéndose en cada confirmación que marcó con e. Aquí elimina los archivos que no desea, git add -A y luego git rebase --continue hasta que hayan terminado. Tu historia estará limpia. Asegúrate de decirle a tus compañeros de trabajo que tendrá que forzar el empuje y ellos tendrán que volver a establecer la base de lo que no empujaron aún.

0

en mi Mac encontré este archivo .gitignore_global ... estaba en mi directorio personal oculto así que haga un ls -altr para verlo.

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

*~ 
.DS_Store 
.project 
.settings 
.classpath 
.metadata 
+0

cuando puse el archivo .gitignore en la carpeta de mi proyecto, arruinó mi proyecto de eclipse localmente . ¿sabes por qué podría suceder eso y cómo prevenirlo? por ahora solo me estoy alejando de .gitignore. – JesseBoyd

+0

Ya no uso eclipse. Inteilji ahora – j2emanue

12

Si usted no tiene un archivo de .gitignore, el uso inicial:

touch .gitignore 

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

echo 'application/cache' >> .gitignore 

Tenga cuidado con las nuevas líneas

Cuestiones relacionadas