Cofnij git update-index --skip-worktree
Jakiś czas temu zrobiłem to, aby zignorować zmiany w pliku śledzonym przez git:
git update-index --skip-worktree <file>
Teraz chcę zatwierdzić zmiany w tym pliku do źródła. Jak usunąć skutki działania skip-worktree
?
Dzięki, Kevin
4 answers
Aha! Po prostu chcę:
git update-index --no-skip-worktree <file>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-21 03:43:17
Zgodnie z http://www.kernel.org/pub/software/scm/git/docs/git-update-index.html , użyj
git ls-files -v
Aby zobaczyć pliki" Załóżmy bez zmian "i" pomiń-obszar roboczy " oznaczone specjalną literą. Pliki "skip-worktree" są oznaczone S
.
Edit : Jak wspomniano @amacleod, Tworzenie aliasu do wyświetlania wszystkich ukrytych plików jest fajną sztuczką, aby nie trzeba było jej pamiętać. Używam alias hidden="git ls-files -v | grep '^S'"
w moim .bash_profile. Działa świetnie!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:33:16
Jeśli chcesz cofnąć wszystkie pliki, które zostały zastosowane pomiń drzewko robocze, możesz użyć następującego polecenia:
git ls-files -v | grep -i ^S | cut -c 3- | tr '\012' '\000' | xargs -0 git update-index --no-skip-worktree
-
git ls-files -v
wyświetli wszystkie pliki z ich statusem -
grep -i ^S
filtruje pliki i wybiera tylko pomiń drzewa robocze lub Pomiń drzewa robocze i przyjmuje niezmienione, - i znaczy ignoruj rozróżnianie wielkości liter -
cut -c 3-
usunie status i pozostawi tylko ścieżki, przecinając od znaku 3 do końca -
tr '\012' '\000'
zastąpi znak końca linii (\012) na zero znak (\000) -
xargs -0 git update-index --no-skip-worktree
przekaże wszystkie ścieżki oddzielone znakiem zero dogit update-index --no-skip-worktree
, aby cofnąć
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-01 07:34:59
Na podstawie odpowiedzi @GuidC0DE, oto wersja dla Powershell (używam posh-git )
git update-index --no-skip-worktree $(git ls-files -v | sls -pattern "^S"| %{$_.Line.Substring(2)})
I dla odniesienia również odwrotne polecenie ukrywania plików:
git update-index --skip-worktree $(git ls-files --modified)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-10 09:19:25