2012-09-07 3 views
5

Mam zdalnego repozytorium git.Jak usunąć pliki z zdalnego repozytorium git bare?

Nowy programista sklonował go, ale nie miał poprawnie skonfigurowanego pliku .gitignore, więc przez pomyłkę wprowadził niepożądane pliki do pilota. Kiedy wyciągnąłem zmiany i połączyłem się, otrzymałem te wcześniej nie udokumentowane pliki. Inni również wyciągnęli zmiany z pilota i mają również te niechciane pliki.

Jak mogę usunąć te pliki ze zdalnego repozytorium i wszystkich innych zdalnych/początków/oddziałów?

Odpowiedz

2

jest procesem trzyetapowym:

  1. Usuń pliki z kopii repozytorium (albo z git rm lub totally purging these files from your history w zależności od tego, jak ważne było to, że pliki te nie są w repozytorium w pierwszej kolejności)
  2. Push zmiany z powrotem do zdalnego repozytorium używając git push --force.
  3. Poinformuj wszystkich, że mogą ponownie pobrać repozytorium - będzie to wymagało git rebase ich pracy nad ostatnim zatwierdzonym dobrym zatwierdzeniem.

W ostatnim etapie można również dodać plik .gitignore do repozytorium tak, że gdy repozytorium klonuje wszystkie właściwe pliki zostają zignorowane.

7

See github ma nas w tej sprawie: https://help.github.com/articles/remove-sensitive-data Oto kroki:

  1. Przepisz drzewo z lokalnego (pracy) drzewa.

    $ git filter-branch --index filtr 'git rm --cached --ignore-unmatch Rakefile' \ --prune pusty --tag-name-filtr cat - --all

  2. Siła push do zdalnego.

    $ origin master git Push --force

  3. Wszyscy wyciągnąć z pilota (i używać --force razie potrzeby)

Aby zapobiec ponownemu wystąpieniu, należy sprawdzić .gitignore w repozytorium (i opcjonalnie ustawić zaczep na serwerze)