Como posso dizer ao git para ignorar meu arquivo local e pegar o arquivo do meu ramo remoto sem tentar mesclar e causar conflitos?
Como posso dizer ao git para ignorar meu arquivo local e pegar o arquivo do meu ramo remoto sem tentar mesclar e causar conflitos?
Respostas:
Esta é a solução mais segura:
git stash
Agora você pode fazer o que quiser, sem medo de conflitos.
Por exemplo:
git checkout origin/master
Se você deseja incluir as alterações remotas na ramificação principal, você pode:
git reset --hard origin/master
Isso fará com que você ramifique "mestre" para apontar para "origem / mestre".
git stash; git fetch origin; git reset --hard origin/master
git stash? git stash listestá vazia.
Entendo a pergunta da seguinte forma: você deseja substituir completamente o conteúdo de um arquivo (ou uma seleção) do montante. Você não deseja afetar o índice diretamente (portanto, você deve adicionar + confirmar, como de costume).
Simplesmente faça
git checkout remote/branch -- a/file b/another/file
Se você quiser fazer isso para subárvores extensas e desejar afetar o índice diretamente, use
git read-tree remote/branch:subdir/
Você pode (opcionalmente) atualizar sua cópia de trabalho fazendo
git checkout-index -u --force
Meu entendimento é que, por exemplo, você salvou incorretamente um arquivo que atualizou apenas para fins de teste. Então, quando você executa o "status git", o arquivo aparece como "Modificado" e você diz algumas palavrões. Você só quer a versão antiga de volta e continua a funcionar normalmente.
Nesse cenário, você pode simplesmente executar o seguinte comando:
git checkout -- path/filename
Gostaria de fazer o checkout do arquivo remoto do "master" (o repositório remoto / de origem) assim:
git checkout master <FileWithPath>
Exemplo: componentes principais do git checkout / indexTest.html
Use a opção -sou --strategycombinada com a -Xopção. Na sua pergunta específica, você deseja manter todos os arquivos remotos e substituir os arquivos locais com o mesmo nome.
Substituir conflitos pela versão remota
git merge -s recursive -Xtheirs upstream/master
usará a versão remota remota de todos os arquivos conflitantes.
Substituir conflitos pela versão local
git merge -s recursive -Xours upstream/master
usará a versão de repo local de todos os arquivos conflitantes.
git merge -s their.