Article image

MW

Mirella Wanessa10/03/2024 11:06
Compartilhe

The Git Push Command

    Introdução ao Push

    Na comunicação através do Push, o equipamento busca proativamente por comandos a executar através de requisições HTTP enviadas periodicamente ao servidor externo para o qual esteja configurado.

    Quando não há nenhum comando a ser executado pelo equipamento, o servidor deve enviar uma resposta vazia. Caso contrário, o servidor deve responder o comando a ser realizado e os parâmetros correspondentes.

    Após o equipamento executar o comando lido do servidor, ele envia nova requisição contendo o resultado da operação realizada. A esta requisição é esperada uma resposta vazia, que encerra a transação de Push. Após cada comando executado, o equipamento já realizará nova requisição de /push, possibilitando a execução de múltiplos comandos em sequência.

    Para utilizar o Push é necessário definir alguns parâmetros de configuração descritos em push_server.

    Evento: busca de comando no servidor

    O equipamento faz requisições periódicas ao servidor para verificar se há algum push do servidor.

    O método HTTP usado é o GET e todos os parâmetros são enviados através da query string.

    GET /push

    Parâmetros

    

    • deviceId (int 64) : Id do equipamento que está fazendo a request.

    Respostas

    Retorno de comando para o equipamento

    Mensagem de retorno do servidor para o equipamento após um evento de tentativa de push.

    Resultado da análise da tentativa de push.

    image

    Exemplo da resposta à requisição /push

    {
     verb: "POST",
     endpoint: "load_objects",
     body: { object: "users" },
     contentType: "application/json"
    }
    
    Evento: resultado de comando

    Envia o resultado da execução do push para o servidor. Essa requisição contém o resultado do comando executado no equipamento.

    O método HTTP utilizado é o POST.

    POST /result

    Parâmetros

    • deviceId (int) : Id do equipamento que está fazendo a request. (Este parâmetro é enviado na query string)
    • response (string) : Contém a resposta dada pela API com a execução do push. Consulte a documentação do comando para informações do formato da resposta. Note que este parâmetro estará presente somente se não ocorrer erro durante a operação
    • error (string) : Especifica o erro que ocorreu durante a execução do push. Note que este parâmetro estará presente somente se ocorrer algum erro.
    Exemplo de requisição

    Requisição com o resultado de listar usuários.

    {
      "response": {
          "users": [
              {
                  "id":1,
                  "registration": "Teste",
                  "name": "Walter White",
                  "password": "Heisenberg",
                  "salt": "",
                  "expires": 0,
                  "user_type_id": 0,
                  "begin_time": 0,
                  "end_time": 0
              }
          ]
      }
    }
    
    Exemplo de resposta:

    A resposta para essa requisição é vazia.

    O comando git puder explicado

    O comando git push permite que você envie (ou em tradução literal, empurre) os commits de sua branch e repositório Git local para o seu repositório remoto.

    Para poder fazer um git push para seu repositório remoto, você deve garantir que todas as suas alterações no repositório local sejam confirmadas.

    A sintaxe deste comando é a seguinte:

    git push <repo name> <branch name>
    

    Existem diversas opções diferentes que você pode passar com o comando, você pode aprender mais sobre elas na documentação do Git ou executar git push --help.

    Enviar para um repositório e ramificação remotos específicos

    Para enviar código por push, você deve primeiro clonar um repositório em sua máquina local

    # Once a repo is cloned, you'll be working inside of the default branch (the default is `master`)
    git clone https://github.com/<git-user>/<repo-name> && cd <repo-name>
    # make changes and stage your files (repeat the `git add` command for each file, or use `git add .` to stage all)
    git add <filename>
    # now commit your code
    git commit -m "added some changes to my repo!"
    # push changes in `master` branch to github
    git push origin master
    

    Para saber mais sobre filiais confira os links abaixo:

    Envie para um repositório remoto específico e todas as ramificações nele

    Se quiser enviar todas as suas alterações para o repositório remoto e todas as ramificações nele, você pode usar:

    git push --all <REMOTE-NAME>
    

    no qual:

    1. --all é o sinalizador que sinaliza que você deseja enviar todas as ramificações para o repositório remoto
    2. REMOTE-NAME é o nome do repositório remoto para o qual você deseja enviar

    Envie para um branch específico com parâmetro force

    Se você quiser ignorar as alterações locais feitas no repositório Git no Github (o que a maioria dos desenvolvedores faz para um hot fix no servidor de desenvolvimento), então você pode usar o comando —force para enviar, ignorando essas alterações.

    git push --force <REMOTE-NAME> <BRANCH-NAME>
    

    no qual:

    1. REMOTE-NAME é o nome do repositório remoto para o qual você deseja enviar as alterações
    2. BRANCH-NAME é o nome do branch remoto para o qual você deseja enviar suas alterações

    Push ignorando o gancho pré-push do Git

    Por padrão, git push acionará a --verify alternância. Isso significa que o git executará qualquer script pré-push do lado do cliente que possa ter sido configurado. Se os scripts pré-push falharem, o git push também falhará. (Ganchos pré-Push são bons para fazer coisas como verificar se as mensagens de commit confirmam os padrões da empresa, executar testes de unidade, etc.). Ocasionalmente, você pode desejar ignorar esse comportamento padrão, por exemplo, no cenário em que deseja enviar suas alterações para um branch de recurso para outro contribuidor extrair, mas suas alterações de trabalho em andamento estão interrompendo os testes de unidade. Para ignorar o gancho, basta inserir seu comando push e adicionar o sinalizador --no-verify

    Compartilhe
    Comentários (0)