Een bestaand bestand verwijderen uit een Git Repo

Ik wil dat git stopt met het bijhouden van mijn lokale ontwikkelingslogboek (log/development.log) in onze repositories. Is dit mogelijk en hoe kan ik dit doen?


Antwoord 1, autoriteit 100%

Om het volledige antwoord in één keer te geven:

  1. van klemens: je moet het bestand ergens boven het ongewenste bestand in de repo toevoegen aan je .gitignore-bestand. d.w.z.

    $ cd
    $ kat >> .gitignore
    development.log
    C-d

  2. van m. narebski: Je moet dan het bestand uit de repo verwijderen door “git rm --cached <file>uit te voeren en vervolgens deze verwijdering uit te voeren”

Als je ook hoopte dat de repo eruit zou zien alsof het dat bestand nooit had gevolgd, dan is dat veel gecompliceerder en zeer ontmoedigd omdat het niet alleen gloednieuwe commits creëert voor elke afzonderlijke commit in je geschiedenis, waardoor de interoperabiliteit in een vervelende manier tussen andere mensen die je repo hebben gekloond, maar het laat ook al die commits niet getest (ervan uitgaande dat je je commits test voordat je ze maakt).

Met dat voorbehoud in gedachten, is de tool die je zoekt als dat je doel is filter-branch. Het eerste voorbeeld doet precies wat ik beschrijf.


Antwoord 2, autoriteit 38%

Om te stoppen met het volgen van het bestand, gebruik je gewoon git rm --cached <filename>.

Maar zoals de anderen hier al hebben opgemerkt, kan het toevoegen van het bestand aan .gitignore voorkomen dat je het later per ongeluk opnieuw toevoegt.


Antwoord 3

voeg het gitignore-bestand toe.

zie http://git-scm.com/docs/gitignore

Other episodes