devstyle.pl - Blog dla każdego programisty
devstyle.pl - Blog dla każdego programisty
0 2 minut

Git i pliki "–assume-unchanged"


13.05.2013

W Gicie możemy zlecić ignorowanie zmian zachodzących w plikach na kilka różnych sposobów. Na ten temat pisałem już w poście „Git a ignorowanie plików„. Dziś skupię się na jednym z nich, a mianowicie na fladze „assume-unchanged”. Służy ona do poinstruowania Gita, aby traktował wybrane pliki, które już zostały dodane do repozytorium, jako niezmodyfikowane. Dwa przykłady zastosowania:

  • mamy plik konfiguracyjny, który w repozytorium zawiera placeholdery w miejscu ważnych danych, takich jak connection string, OAuth key/secret etc; po ściągnięciu kodu z repozytorium wpisujemy tam poprawne dane, ale nie chcemy przy każdym commicie pamiętać o tym, aby przypadkiem owych zmian nie pchnąć do repo
  • ściągamy projekt i okazuje się, że jeden z setek testów nie przechodzi; nie mamy teraz czasu na zajmowanie się tym problemem (albo zajmuje się już nim ktoś inny), a irytuje nas czerwona bubka w test runnerze; oznaczamy test jako ignorowany, ale plik z takim ignorowanym/zakomentowanym testem nie powinien być niechcący dodany do któregoś z commitów i wysłany na serwer

Scenariuszy jest pewnie więcej, ale te dwa wystarczą aby mieć pełne zrozumienie „po co to jest”.

Tak jak pisałem w podlinkowanym poście, wystarczy jedna linijka aby Git zostawił nasz plik w spokoju:

git update-index --assume-unchanged <path>

Problemem jest jednak fakt, iż nie ma prostego sposobu na podejrzenie które pliki mamy aktualnie w ten sposób potraktowane. A odznaczenie tej flagi wymaga znajomości dokładnej ścieżki:

git update-index --no-assume-unchanged <path>

Na szczęście poprzedni akapit nie jest do końca prawdziwy i ISTNIEJE sposób na sprawdzenie, które śledzone pliki Git aktualnie pomija. Wystarczy dodać sobie taki alias, i zyskujemy nową komendę generującą piękną listę plików oznaczonych flagą assume-unchanged:

[alias]ignored = !git ls-files -v | grep "^[[:lower:]]"</p>

Nie przegap kolejnych postów!

Dołącz do ponad 9000 programistów w devstyle newsletter!

Tym samym wyrażasz zgodę na otrzymanie informacji marketingowych z devstyle.pl (doh...). Powered by ConvertKit
Powiadom o
trackback

Git i pliki „–assume-unchanged” | Maciej Aniserowicz o programowaniu…

Dziękujemy za dodanie artykułu – Trackback z dotnetomaniak.pl…

nilphilus
nilphilus

Czy to normalne że po checkout na inny branch (i powrocie) flaga znika?

unodgs
unodgs

Dzięki za cenną informację. Nie wiedziałem o takiej możliwości.

Moja książka „Zawód: Programista”

Facebook

Zobacz również