2011-05-17 17 views
29

Tengo el siguiente archivo .gitignoregit no .ignore trabajando en un directorio

# file named .gitignore 

system/application/config/database.php 
system/application/config/config.php 
system/logs 
modules/recaptcha/config/* 

Sin embargo cuando agrego cualquier cambio en la configuración y recapcha.php, git status me advierte de la siguiente manera. Cuando agrego cualquier cambio a database.php. no lo muestra en el estado

[email protected]:/var/www/myapp$ git status 
# On branch master 
# Your branch is ahead of 'origin/master' by 1 commit. 
# 
# Changes not staged for commit: 
# (use "git add <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
# modified: modules/recaptcha/config/recaptcha.php 
# modified: system/application/config/config.php 
# 
no changes added to commit (use "git add" and/or "git commit -a") 

¿Cómo puedo solucionar esto?

Gracias de antemano.

estoy usando git versión 1.7.5.1 en Ubuntu 11.04

+0

posible duplicado de [Git: elimine un archivo del repositorio sin eliminarlo del sistema de archivos local] (http://stackoverflow.com/questions/1143796/git-remove-a-file-from-the-repository- sin-eliminar-de-la-local-filesy) – Cascabel

Respuesta

84

Los archivos ya están almacenados en su árbol de confirmación local. Debe eliminarlos del repositorio, esto se puede hacer a través del git rm --cached system/application/config/config.php modules/recaptcha/config/recaptcha.php, luego de lo cual debe hacer una confirmación más y listo.

+5

Gracias. git rm eliminó un archivo. Pero agregar - caché resolvió el problema. ¿Qué debo hacer si deseo volver a agregarlo? ¿Solo tengo que sacar del archivo .gitignore? – shin

+1

¡Gracias, funciona como un encanto! – Rawa

+1

Genial. Gracias – manuelbcd

2

supongo .gitignore yout no está en la raíz de su árbol de trabajo.

Si se pone un .gitignore en el mismo directorio que system/application/config/config.php sólo puede utilizar

echo config.php >> system/application/config/.gitignore 

Las rutas son relativas al directorio actual (o: .gitignore es una por directorio excluir/incluir archivo).

Ver hombre git-ignore

8

Si el archivo ya está en git antes de agregar el directorio para .gitignore git mantendrá el seguimiento de la misma. Si no lo quiere, haga una "git rm" para eliminarlo primero.

+3

¿No 'git rm' (sin '-cached') también eliminará el archivo? ¿O lo deja porque está listado en el archivo '.gitignore'? – DipSwitch

+0

Probablemente deberías respaldarlo en algún lugar anteriormente. Después de confirmar y confirmar, cópielo de nuevo. Pero no sabía acerca de la opción --cached, la veré. –

Cuestiones relacionadas