Muitas pessoas aconselham você a usar git update-index --assume-unchanged
. De fato, essa pode ser uma boa solução, mas apenas no curto prazo.
O que você provavelmente vai querer fazer é esta: git update-index --skip-worktree
.
(A terceira opção, que você provavelmente não deseja é:. git rm --cached
Ele manterá seu arquivo local, mas será marcado como removido do repositório remoto.)
Diferença entre as duas primeiras opções?
assume-unchanged
é temporariamente permitir ocultar modificações de um arquivo. Se você deseja ocultar as modificações feitas em um arquivo, modifique o arquivo e faça check-out em outra ramificação, será necessário usar as no-assume-unchanged
modificações ocultas provavelmente feitas.
skip-worktree
irá segui-lo seja qual for o ramo que fizer o checkout, com suas modificações!
Caso de uso de assume-unchanged
Ele assume que esse arquivo não deve ser modificado e fornece uma saída mais limpa ao fazê-lo git status
. Mas ao fazer o check-out para outra ramificação, é necessário redefinir o sinalizador e confirmar ou ocultar as alterações antes disso. Se você puxar com esta opção ativada, precisará resolver conflitos e o git não será mesclado automaticamente. Na verdade, ele apenas oculta modificações ( git status
não mostra os arquivos sinalizados).
Gosto de usá-lo quando quero parar de rastrear alterações por um tempo + confirmar um monte de arquivos ( git commit -a
) relacionados à mesma modificação.
Caso de uso de skip-worktree
Você tem uma classe de configuração contendo parâmetros (por exemplo, incluindo senhas) que seus amigos precisam alterar de acordo com a configuração deles.
- 1: Crie uma primeira versão desta classe, preencha os campos que você pode preencher e deixe outros vazios / nulos.
- 2: Confirme e envie-o para o servidor remoto.
- 3:
git update-index --skip-worktree MySetupClass.java
- 4: Atualize sua classe de configuração com seus próprios parâmetros.
- 5: Volte a trabalhar em outra funcionalidade.
As modificações que você fizer seguirão você em qualquer ramo. Aviso: se seus amigos também quiserem modificar essa classe, eles precisam ter a mesma configuração; caso contrário, suas modificações serão enviadas ao repositório remoto. Ao puxar, a versão remota do arquivo deve substituir a sua.
PS: faça um ou outro, mas não ambos, pois você terá efeitos colaterais indesejáveis. Se você quiser tentar outro sinalizador, desabilite o último primeiro.
.csproj
arquivo, que é uma parte muito importante de qualquer projeto. Alterações no.csproj.user
arquivo ou quaisquer.Publish.XML
arquivos eu posso totalmente entender não rastreamento, mas estou intrigado por que motivo você não gostaria de acompanhar o.csproj
...