desfazer o índice de actualização do git -- assume-inalterado

a forma como git ignora vigiar/seguir um dado ficheiro dir. só tens de gerir isto.

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

Agora, como é que se desfaz para que eles sejam observados de novo? (vamos chamá-lo de não assumir)

Author: adardesign, 2013-06-19

8 answers

Para obter desfazer/mostrar os ficheiros / dir que estão configurados para assumir que-não mudou execute isto:

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

Para obter uma lista dos ficheiros/dir que são assume-unchanged Execute isto:

git ls-files -v|grep '^h'

 461
Author: adardesign, 2016-07-07 17:31:11

Se este é um comando que você usa frequentemente-você pode querer considerar ter um pseudônimo para ele também. Adicionar ao seu global .gitconfig:

[alias]
    hide = update-index --assume-unchanged
    unhide = update-index --no-assume-unchanged

Depois de guardar isto para o seu .gitconfig, pode executar um comando mais limpo.

git hide myfile.ext

Ou

git unhide myfile.ext

Este recurso foi muito útil

 70
Author: adswebwork, 2015-09-23 10:13:52

A função git update-index tem várias opções que poderá encontrar para escrever do seguinte modo:

git update-index --help

Aqui irá encontrar várias opções-como lidar com o índice de actualização da função.

[Se não sabe o nome do ficheiro]

git update-index --really-refresh 

[se souber o nome do ficheiro]

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

Irá reverter todos os ficheiros que foram adicionados na lista Ignorar.

git update-index --assume-unchanged <file>
 34
Author: Ankit Vishwakarma, 2014-06-17 10:34:22

Presumo (heh) que quis dizer {[[[0]}, uma vez que não vejo nenhuma opção --assume-changed. O inverso de --assume-unchanged é --no-assume-unchanged.

 30
Author: hobbs, 2013-06-19 15:58:25

Se quiser desfazer todos os ficheiros que foram aplicados, assuma inalterado com qualquer estado, e não apenas em 'cache' (o git marca-os por carácter em minúsculas), poderá usar o seguinte comando:

git ls-files -v | grep '^[a-z]' | cut -c 3- | tr '\012' '\000' | xargs -0 git update-index --no-assume-unchanged
  1. git ls-files -v irá imprimir todos os ficheiros com o seu estado
  2. grep '^[a-z]' irá filtrar os ficheiros e seleccionar apenas assumir o
  3. inalterado
  4. cut -c 3- irá remover o estado e deixar apenas caminhos, cortando do carácter 3-rd até ao fim
  5. tr '\012' '\000' irá substituir o carácter de fim de linha (\012) para carácter zero (\000)
  6. xargs -0 git update-index --no-assume-unchanged irá passar todas as localizações separadas por zero caracteres para git update-index --no-assume-unchanged desfazer
 14
Author: C0DEF52, 2016-01-01 07:34:34

Adicionando à resposta de @adardesign, Se quiser repor todos os ficheiros que foram adicionados à lista assume-unchanged para no-assume-unchanged de uma só vez, poderá fazer o seguinte:

git ls-files -v | grep '^h' | sed 's/^..//' | sed 's/\ /\\ /g' | xargs -I FILE git update-index --no-assume-unchanged FILE || true

Isto irá apenas remover os dois caracteres de saída do grep, ou seja "h ", escapando então a quaisquer espaços que possam estar presentes nos nomes dos ficheiros, e finalmente || true irá impedir o comando de terminar prematuramente no caso de alguns ficheiros no loop terem erros.

 11
Author: sagunms, 2014-02-13 08:59:44

Para sintetizar as excelentes respostas originais de @adardesign, @adswebwork e @AnkitVishwakarma e comentários de @Bdoserror e @Retsam, com links de documentação adicionais e um nome de código shell...

Comandos Básicos

To reset a file that is assume-unchanged back to normal:

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

A listar todos os ficheiros que são considerados-inalterados:

git ls-files -v | grep '^[a-z]' | cut -c3-

Para reiniciar todos assumir que-os ficheiros inalterados voltam para normal:

git update-index --really-refresh

Atalhos

Para tornar estas tarefas comuns fáceis de executar no git, adicione a seguinte secção a .gitconfig para o seu utilizador (por exemplo ~/.gitconfig num sistema * nix ou macOS):

[alias]
    hide = update-index --assume-unchanged
    unhide = update-index --no-assume-unchanged
    unhide-all = update-index --really-refresh
    hidden = ls-files -v

Para facilitar a execução da listagem de todos os ficheiros que se mantêm inalterados numa linha de comandos que suporta alias (como a bash), crie um nome alternativo como:

alias git-hidden="git hidden | grep '^[a-z]' | cut -c3-"
Para conchas sem pseudónimos, um guião pode ajudar.
 7
Author: Will Cain, 2018-05-16 16:20:28

Se estiver a utilizar As Extensões Git , então siga os seguintes passos:

  1. Vá para a janela de commit.
  2. carregue na lista de alterações da pasta de trabalho.
  3. seleccione a opçãomostrar os ficheiros assumidamente inalterados .
  4. carregue com o botão direito no ficheiro que deseja abrir.
  5. Seleccionarnão assumir inalterado .
Está feito.
 2
Author: Shivang Gupta, 2017-11-22 05:06:40