Cada desenvolvedor da minha equipe tem sua própria configuração local. Essas informações de configuração são armazenadas em um arquivo chamado devtargets.rb
que é usado em nossas tarefas de criação de rake. Eu não quero que os desenvolvedores espancem o arquivo de devtargets um do outro.
Meu primeiro pensamento foi colocar esse arquivo na .gitignore
lista para que ele não se comprometa com o git.
Então comecei a me perguntar: é possível confirmar o arquivo, mas ignorar as alterações no arquivo? Então, eu confirmaria uma versão padrão do arquivo e, quando um desenvolvedor a alterasse em sua máquina local, o git ignoraria as alterações e não apareceria na lista de arquivos alterados quando você executasse um status ou uma confirmação do git .
Isso é possível? Certamente seria um bom recurso ...
Respostas:
Claro, eu faço exatamente isso de tempos em tempos usando
Para desfazer e começar a rastrear novamente (se você esqueceu quais arquivos não foram rastreados, consulte esta pergunta ):
Documentação relevante :
Falhar normalmente neste caso significa que, se houver alguma alteração a montante desse arquivo (alterações legítimas etc.) quando você fizer um pull, ele dirá:
e se recusará a mesclar.
Nesse ponto, você pode superar isso revertendo suas alterações locais, eis uma maneira:
em seguida, puxe novamente e modifique novamente o arquivo local ou pode definir
–no-assume-unchanged
e você pode fazer stash e mesclagem normais, etc.fonte
git update-index --assume-unchanged
serve. public-inbox.org/git/…A maneira preferida de fazer isso é usar
git update-index --skip-worktree <file>
, conforme explicado nesta resposta :Para desfazer isso, use
git update-index --no-skip-worktree <file>
Desde a versão 2.25.1 do git, essa não é mais a maneira recomendada, citando:
fonte
git update-index --skip-worktree
para esse fim.Parece que a prática comum é criar
devtargets.default.rb
e confirmar e instruir cada usuário a copiar esse arquivo paradevtargets.rb
(que está na lista .gitignore). Por exemplo, o CakePHP faz o mesmo com o arquivo de configuração do banco de dados, que muda naturalmente de máquina para máquina.fonte
--assume-unchanged
opção para todos que clonam o repositório.devtargets.default.rb
sedevtargets.rb
não existir.Para usuários do IntelliJ IDEA: Se você deseja ignorar as alterações de um arquivo (ou arquivos), você pode movê-lo para diferente
Change Set
.Local Changes
(Cmd + 9
)F6
para movê-los para outroChange Set
fonte