2013-03-21 10 views
6

Mam plik App.Local.config, w którym każdy programista ma własne ustawienia. Nie chcę, aby ten plik był sprawdzany w repozytorium GIT, tak jak za każdym razem, gdy zostanie on nadpisany przez inne zmiany programistów.GIT: Jak zachować ignorowane pliki podczas przełączania gałęzi?

Usunąłem plik z repozytorium i dodałem go do pliku ignorowania. Ale teraz, gdy programiści przełączają gałęzie, App.Local.config jest usuwany ze swojego lokalnego systemu plików.

Ostatecznie co chciałbym to:

  1. nowe klony dev repo, dostaje wersję wyjściową App.Local.config
  2. dev wprowadza zmiany do App.Local.config. Git zignoruje zmiany, a nie etap/checkin
  3. dev przełącza gałęzie, zmiany w pliku App.Local.config nie zostaną utracone, a plik nie zostanie usunięty.

Jak mogę to zrobić?

Dzięki.

+0

Jeśli plik zostanie poprawnie zignorowany, nie należy go dotykać podczas przełączania gałęzi. Czy pojawia się po wpisaniu 'git status'? –

+2

Zostanie usunięty tylko przy pierwszej aktualizacji dla wszystkich. Gdy repozytoria wszystkich osób są aktualne, plik pozostanie i nie zostanie usunięty. – TheBuzzSaw

Odpowiedz

6

Prawdopodobnie usunięto plik z obszaru roboczego, ale nie z indeksu. Jeśli zrobiłeś, że ten git uważa, że ​​usunięcie tego pliku jest zmianą, a następnie usunie go.

Sposobem na to ochotę, aby usunąć plik nie chcesz śledzić już od wskaźnika z

git rm --cached App.Local.config 

a następnie dodać ten plik do .gitignore Doing że nie będziesz miał więcej problemów z plik

+1

@mswanson Jeśli plik jest ignorowany, możesz przełączać gałęzie według własnego uznania - nie zostanie to dotknięte. Masz więc tylko jeden problem: dostarczaj programistom szablon dla tego pliku. Ale powinieneś to zrobić z git. – madhead

+0

jeśli plik jest ignorowany i poza indeksem zmiany w pliku nie zostaną utracone, a plik nie zostanie usunięty – iberbeu

+1

@iberbeu Mam ten sam problem, ale plik nigdy nie był w indeksie. Założyłem nową gałąź z flagą --orphan, a następnie git rm - wszystko w podręczniku, zignorowałem niektóre pliki w .gitignore i zatwierdzono. Te pliki znikają, gdy przełączam gałęzie i nie wiem, jak tego uniknąć! – splinter123

1

Wygląda na to, że ten plik był w indeksie jeden raz. Więc jego usunięcie jest zmianą. Możesz dodać go do .gitignore lub .git/info/exclude, a następnie po prostu odtwórz go na każdym komputerze programisty.

0

należy użyć git rm --cached App.Local.config nie tylko w was oddział działa, ale również w branży chcesz, aby przełączyć się albo stracisz App.Local.config po przełączeniu z powrotem do oddziału pracowałeś, jeśli tylko używać git rm --cached App.Local.config w tej branży .

Powiązane problemy