Como usar o git force puxar

Como usar o git force puxar
Arquivos Git e pastas de qualquer projeto Git podem ser compartilhados por vários usuários do Git que trabalham em uma equipe. Quando vários usuários tentam trabalhar no mesmo arquivo ou pasta, surge o conflito. Suponha que, quando os dois usuários estejam trabalhando no mesmo arquivo de um repositório e se um usuário modificar o arquivo após a modificação feita por outro usuário, a modificação feita pelo primeiro usuário será perdida pela última atualização. Este problema pode ser resolvido manualmente. O usuário tem que fazer a força de git para substituir as mudanças no repositório local sem afetar as mudanças feitas no repositório local que não são empurradas. 'git pux' O comando não pode resolver este problema. A maneira de usar a força git puxada 'git busca' e 'Reset Git' Os comandos mostraram neste tutorial.

Pré -requisitos:

Instale o GitHub Desktop

O GitHub Desktop ajuda o usuário do Git a executar as tarefas relacionadas ao Git graficamente. Você pode fazer o download facilmente do instalador mais recente deste aplicativo para o Ubuntu do GitHub.com. Você precisa instalar e configurar este aplicativo após o download para usá -lo. Você também pode verificar o tutorial para instalar o GitHub Desktop no Ubuntu para conhecer o processo de instalação corretamente.

Crie uma conta do GitHub

Você precisará criar uma conta do GitHub para verificar os comandos usados ​​neste tutorial.

Crie um repositório local e remoto

Você precisa criar um repositório local e publicar o repositório no servidor remoto para testar os comandos usados ​​neste tutorial.

Substitua as mudanças locais para forçar o GIT PULL:

O 'Git busca -ver' O comando baixar todo o conteúdo do repositório remoto no repositório local, mas não mescla o conteúdo com o repositório local. Depois de executar o comando buscador, se o 'Reset Git' O comando é executado com o -duro Opção, todos os arquivos e pastas correspondentes do repositório local serão substituídos pelo conteúdo do repositório remoto. Todas as alterações locais não comprometidas e comprometidas que não são empurradas serão excluídas para o -opção difícil. Esse problema foi descrito nesta parte do tutorial usando um repositório local chamado Python publicado antes no servidor remoto.

Abra o básico.py arquivo do repositório remoto para verificar o conteúdo do arquivo. A imagem a seguir mostra que o arquivo contém quatro linhas de script para adicionar dois números.

Force Git Pull para alterações não comprometidas:

Agora, abra o básico.arquivo py do repositório local em qualquer editor de texto e modifique o arquivo com o seguinte conteúdo. Salve o arquivo e saia do editor.

Imprimir (“Adicionando três números”)
a = 10
b = 20
c = 30
Imprimir (A+B+C)

Execute os seguintes comandos para adicionar o modificado básico.py Arquivo no repositório local e verifique o status do repositório.

$ git adicione básico.py
$ git status

A saída a seguir aparecerá após a execução do comando. A saída mostra que a tarefa ainda não está comprometida.

Execute os seguintes comandos para verificar o conteúdo do básico.py arquivo antes de puxar o conteúdo do repositório remoto e verificar o conteúdo do básico.py Depois de puxar com força.

$ CAT BASIC.py
$ git busca -tudo
$ git reset -Origem difícil/principal
$ CAT BASIC.py

A saída a seguir mostra que o conteúdo do básico.py o arquivo foi substituído pelo conteúdo do básico.py arquivo do servidor remoto e o conteúdo modificado foi perdido.

Force Git Pull para mudanças comprometidas:

Novamente, abra o básico.py arquivo do repositório local em qualquer editor de texto e modifique o arquivo com o seguinte conteúdo. Salve o arquivo e saia do editor.

Imprimir (“subtrair dois números”)
a = 50
b = 20
Imprimir (a - B)

Execute os seguintes comandos para adicionar o modificado básico.py Arquivo no repositório local, comprometa a tarefa e verifique o status do repositório.

$ git adicione básico.py
$ git Commit -m "BASIC.py atualizou "
$ git status

A saída a seguir mostra que o modificado básico.py O arquivo é adicionado e comprometido com uma mensagem de confirmação. A árvore de trabalho atual está limpa agora.

Execute os comandos anteriores novamente para verificar como o 'Reset Git' O comando funciona para a tarefa comprometida.

$ CAT BASIC.py
$ git busca -tudo
$ git reset -Origem difícil/principal
$ CAT BASIC.py

A saída a seguir mostra que o conteúdo do arquivo remoto substituiu o conteúdo do arquivo local novamente. Então o 'Reset Git' O comando funciona da mesma forma para tarefas comprometidas e não comprometidas.

Salve as mudanças locais antes de forçar o Git Pull:

O problema de substituição pode ser resolvido criando uma nova filial. Comprometa todas as mudanças no repositório antes de executar os comandos de puxar. Novamente, abra o básico.py arquivo do repositório local em qualquer editor de texto e modifique o arquivo com o seguinte conteúdo. Salve o arquivo e saia do editor.

Imprimir (“Multiplique dois números”)
a = 10
b = 20
impressão (a * b)

Execute os seguintes comandos para verificar a lista de filiais, mudar para uma nova filial e verificar o conteúdo do básico.py Arquivo depois de executar os comandos de puxar.

Ramo $ git
$ git checkout -B New -rale
$ git busca -ll
$ git reset -Origem difícil/principal
$ CAT BASIC.py

A saída a seguir mostra que o conteúdo do básico.py O arquivo substituiu a nova filial.

Agora, execute os seguintes comandos para verificar o conteúdo do básico.py Arquivo depois de mudar para o principal filial.

$ git checkout main
$ CAT BASIC.py

A saída a seguir mostra que o conteúdo do básico.py permaneceu inalterado.

Conclusão:

O problema de puxar o repositório Git com força e como resolver esse problema foi explicado neste tutorial usando um repositório de demonstração local e remoto. Mas esta solução não funcionará para as mudanças não comprometidas do repositório local. Então, você tem que cometer todas as mudanças ou executar o 'Git Stash' comando antes de puxar o repositório Git com força.