2014-09-24 11 views
6

Mam dziwny problem z usunięciem pliku. Mam śledzony plik index.css. Następnie dodaję go do .gitignore. Potem uruchom następujące i uzyskać wynik:Problem z usunięciem pliku ze śledzenia przy użyciu Git

$ git rm --cached build/development/css/index.css 
rm 'build/development/css/index.css' 

Running git status wydaje następujący:

$ git status 
On branch master 
Your branch is up-to-date with 'origin/master'. 

Changes to be committed: 
    (use "git reset HEAD <file>..." to unstage) 

     deleted: build/development/css/index.css 

podczas próby popełnienia zmian pojawia się następujący błąd:

Error:On branch master 
Your branch is up-to-date with 'origin/master'. 
nothing to commit, working directory clean 
during executing git commit --only -F C:\Users\dtv\AppData\Local\Temp\git-commit-msg-7154374096157077481.txt -- build/development/css/index.css 

Gdybym spróbuj wprowadzić zmiany do index.css wraz z zewnętrznymi zmianami, zatwierdzenie przebiega bezbłędnie. Ale zmiany w pliku są nadal wykrywane. Co ja robię źle?

+0

nie jestem w stanie odtworzyć twój problem z git w wersji 1.9. Jakiej wersji używasz? –

+0

@Zeeker, 1.9.4. Coś jest nie tak z tym plikiem. Nie wiem, co. Jakie kroki mogę podjąć, aby go wyśledzić? –

+0

Niezupełnie, ale może coś w twoim repozytorium się zepsuło.Zawsze możesz spróbować ponownie utworzyć repozytorium i spróbować ponownie. –

Odpowiedz

1

Problem dotyczy opcji --only dla git commit. Od git-commit manpage:

Make a commit only from the paths specified on the command line, disregarding any contents that have been staged so far.

Próbuje popełnić tego pliku, nie zważając na poprzednie polecenie git rm --cached sprzed.

1
  • według mojej obserwacji, jeśli użyjemy tej komendy git rm --cached filename, która zostanie zignorowana tylko w tym czasie.
  • jeśli dodasz ten plik do .gitignore, git ignoruje (trwale) ten plik na stałe. Po dodaniu pliku lub ścieżkę do .gitignore musimy wykonać następujące polecenia do untrack te pliki z najbliższego czasu począwszy

    Pierwszy popełnić żadnych zaległych zmian w kodzie, a następnie uruchom następujące polecenie

    git rm -r --cached . -> Spowoduje to usunięcie wszelkich zmienionych plików z indeksu (poczekalnia)

    git add .

    git commit -m ".gitignore is now working" -> aby zatwierdzić zmiany

1

Czy próbowałeś:

git zmiana indeksu --assume-niezmienione ścieżka_do_pliku

To oznaczy plik w indeksie i git zatrzyma śledzenia plik dla jakichkolwiek modyfikacji. W połączeniu z dodaniem tego pliku w .gitignore zatrzyma pokazując go jako zmodyfikowany przy użyciu

git status

Można również sprawdzić dokumenty dla update-index

Powiązane problemy