aby zobaczyć pliki "zakładaj niezmienione" i "pomiń obszar roboczy" oznaczone specjalną literą. Pliki „skip-workktree” są oznaczone S.
Edycja : jak wspomniał @amacleod , utworzenie aliasu do listy wszystkich ukrytych plików jest fajną sztuczką, abyś nie musiał go pamiętać. Używam alias hidden="git ls-files -v | grep '^S'"w moim .bash_profile. Działa świetnie!
Schludny. Mogę użyć git ls-files -v | grep '^S'do wyświetlenia tylko plików, które zostały „ukryte” za pomocą skip-worktree. Miałem nadzieję, że alias zostanie „ukryty” dla tego polecenia, ale umieszczenie przekierowania potoku w aliasie wydawało się nie działać.
amacleod
5
@amacleod użyj pliku !. Jak ten [alias] ignored = !git ls-files -v | grep "^S"Testowany, działa.
Steven Lu
@amacleod Nie myśl, że byłbyś w stanie zasugerować alternatywne polecenie dla systemu Windows?
Steve Chambers
1
@SteveChambers, Krótko o instalacji grep, nie wiem. Chyba zależy od twojej powłoki. grepMyślę, że Git Bash jest dostępny .
amacleod
1
Świetnie, dzięki @amacleod - po prostu nie było mi na drodze. Jedyną rzeczą, którą musiałem zmienić, aby to działało w systemie Windows, był styl cytowania - 'nie działał, ale działał ", tj.git ls-files -v | grep "^S"
Steve Chambers
17
Jeśli chcesz cofnąć wszystkie zastosowane pliki, pomiń obszar roboczy, możesz użyć następującego polecenia:
git ls-files -v wydrukuje wszystkie pliki wraz ze stanem
grep -i ^S przefiltruje pliki i wybierze tylko pomiń drzewo robocze (S) lub pominie drzewo robocze i przyjmie bez zmian, -i oznacza ignorowanie wielkości liter
cut -c 3- usunie status i pozostawi tylko ścieżki, odcinając od trzeciego znaku do końca
tr '\012' '\000' zamieni znak końca linii (\ 012) na znak zera (\ 000)
Kliknij prawym przyciskiem myszy folder lub określony plik, a następnie wybierz TortoiseGit > Check for modifications
Tylko sprawdź Show ignore local changes flagged files. Powinieneś zobaczyć plik, który zignorowałeś (lub wszystkie pliki, które zignorowałeś, jeśli kliknąłeś folder prawym przyciskiem myszy)
Kliknij plik prawym przyciskiem myszy i wybierz Unflag as skip-worktree and assume-unchanged
Ta odpowiedź jest skierowana do osób mniej technicznych korzystających z systemu Windows.
Jeśli nie pamiętasz / nie wiesz, na które pliki kliknąłeś „skip-workktree”, użyj:
git ls-files -v //This will list all files, you are looking for the ones with an S at the beginning of the line.
git ls-files -v | grep "S " //Use this to show only the lines of interest. Those are the files that have "skip-worktree".
Aby rozwiązać problem:
Możesz przejść do plików -> kliknij prawym przyciskiem myszy -> przywróć poprzednią wersję -> kliknij zakładkę „git” na górze -> odznacz pole wyboru „skip-workktree” -> kliknij „Apply” na dole.
Jeśli plików jest zbyt wiele, aby można je było naprawić ręcznie, należy zapoznać się z innymi odpowiedziami.
Odpowiedzi:
Aha! Po prostu chcę:
źródło
Zgodnie z http://www.kernel.org/pub/software/scm/git/docs/git-update-index.html użyj
git ls-files -v
aby zobaczyć pliki "zakładaj niezmienione" i "pomiń obszar roboczy" oznaczone specjalną literą. Pliki „skip-workktree” są oznaczone
S
.Edycja : jak wspomniał @amacleod , utworzenie aliasu do listy wszystkich ukrytych plików jest fajną sztuczką, abyś nie musiał go pamiętać. Używam
alias hidden="git ls-files -v | grep '^S'"
w moim .bash_profile. Działa świetnie!źródło
git ls-files -v | grep '^S'
do wyświetlenia tylko plików, które zostały „ukryte” za pomocą skip-worktree. Miałem nadzieję, że alias zostanie „ukryty” dla tego polecenia, ale umieszczenie przekierowania potoku w aliasie wydawało się nie działać.!
. Jak ten[alias] ignored = !git ls-files -v | grep "^S"
Testowany, działa.grep
, nie wiem. Chyba zależy od twojej powłoki.grep
Myślę, że Git Bash jest dostępny .'
nie działał, ale działał"
, tj.git ls-files -v | grep "^S"
Jeśli chcesz cofnąć wszystkie zastosowane pliki, pomiń obszar roboczy, możesz użyć następującego polecenia:
git ls-files -v
wydrukuje wszystkie pliki wraz ze stanemgrep -i ^S
przefiltruje pliki i wybierze tylko pomiń drzewo robocze (S) lub pominie drzewo robocze i przyjmie bez zmian, -i oznacza ignorowanie wielkości litercut -c 3-
usunie status i pozostawi tylko ścieżki, odcinając od trzeciego znaku do końcatr '\012' '\000'
zamieni znak końca linii (\ 012) na znak zera (\ 000)xargs -0 git update-index --no-skip-worktree
będzie przekazywać wszystkie ścieżki oddzielone znakiem zero,git update-index --no-skip-worktree
aby cofnąćźródło
Na podstawie odpowiedzi @ GuidC0DE, oto wersja dla Powershell (używam posh-git )
A dla odniesienia również przeciwne polecenie, aby ukryć pliki:
źródło
Dla tych, którzy używają Tortoise Git:
TortoiseGit > Check for modifications
Show ignore local changes flagged files
. Powinieneś zobaczyć plik, który zignorowałeś (lub wszystkie pliki, które zignorowałeś, jeśli kliknąłeś folder prawym przyciskiem myszy)Unflag as skip-worktree and assume-unchanged
źródło
Dla wszystkich, którzy kochają aliasy Bash, oto mój zestaw do rządzenia nimi wszystkimi (oparty na C0DEF52)
źródło
Ta odpowiedź jest skierowana do osób mniej technicznych korzystających z systemu Windows.
Jeśli nie pamiętasz / nie wiesz, na które pliki kliknąłeś „skip-workktree”, użyj:
Aby rozwiązać problem:
Możesz przejść do plików -> kliknij prawym przyciskiem myszy -> przywróć poprzednią wersję -> kliknij zakładkę „git” na górze -> odznacz pole wyboru „skip-workktree” -> kliknij „Apply” na dole.
Jeśli plików jest zbyt wiele, aby można je było naprawić ręcznie, należy zapoznać się z innymi odpowiedziami.
źródło