"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Primeira vez trabalhando com Git remoto

Primeira vez trabalhando com Git remoto

Publicado em 2024-11-08
Navegar:458

First time working with Git remote

Introdução

Esta semana, aprofundei meu conhecimento sobre Git, principalmente trabalhando com controles remotos Git. Como pré-requisito, a familiaridade com a fusão do Git é essencial ao lidar com controles remotos. Na semana passada, compartilhei minha primeira experiência com o Git merge e discuti algumas práticas recomendadas. Esta semana, apliquei esse conhecimento enquanto trabalhava em um novo recurso, não em meu próprio repositório, mas no repositório de um colaborador – o do meu amigo Mayank. Simultaneamente, ele trabalhou em um recurso em meu repositório, que nos permite praticar colaboração remota usando Git.

Novo recurso: suporte para configuração TOML

Atualmente, a ferramenta que venho desenvolvendo nas últimas semanas usa um conjunto padrão de valores para opções como temperatura e modelo, que são aplicados quando os usuários não fornecem argumentos específicos. O objetivo deste novo recurso era estender a funcionalidade da ferramenta adicionando suporte para leitura de definições de configuração de um arquivo TOML localizado no diretório inicial do usuário.

Por exemplo, se um usuário tiver um arquivo de configuração em C:\User\Anh\config.toml, a ferramenta agora verificará a existência de arquivos .toml no diretório inicial do usuário. Se tal arquivo estiver presente, a ferramenta lê o arquivo e aplica seus valores para definir configurações padrão, substituindo os padrões integrados. No entanto, os usuários ainda podem fornecer argumentos de linha de comando, que terão precedência sobre os valores do arquivo TOML.

Implementação

Para implementar esse recurso, utilizei o pacote toml para analisar o conteúdo do arquivo de configuração TOML:


import * as toml from 'toml';


Como a ferramenta procurará um arquivo .toml no diretório inicial do usuário, usei o módulo os integrado do Node.js para recuperar o caminho do diretório inicial:


const os = require("os");
const homeDir = os.homedir();


Depois de reunir todos os arquivos do diretório inicial do usuário, iterei sobre eles para encontrar arquivos ocultos (aqueles que começam com um ponto .) que terminam com .toml. O primeiro arquivo .toml encontrado foi usado como fonte de configuração da ferramenta.

Notas

  • A ferramenta procurará um "dotfile" oculto (por exemplo, .config.toml) no diretório inicial, contendo opções padrão no formato TOML.
  • Se o arquivo estiver faltando, a ferramenta irá ignorar isso e continuar com as configurações padrão como no arquivo config.js.
  • Se o arquivo existir, mas não for TOML válido, a ferramenta será encerrada com uma mensagem de erro apropriada.
  • Se o arquivo TOML existir e nenhum argumento de linha de comando substituir seus valores, as configurações do arquivo TOML serão usadas (por exemplo, modelo padrão).
  • A ferramenta ignorará quaisquer opções não reconhecidas no arquivo TOML para garantir compatibilidade com versões anteriores.

Processo de colaboração remota

Como mencionado anteriormente, esta semana envolveu a prática de fluxos de trabalho remotos do Git e a fusão do Git com o Mayank. Para trabalhar em um recurso em seu repositório, segui estas etapas:

  1. Fork and Clone: Eu bifurquei seu repositório e o clonei em minha máquina local.
  2. Criar uma filial: criei uma nova filial em minha cópia local e comecei a trabalhar no novo recurso.
  3. Commit e Push: Depois de fazer alterações, eu as enviei para o branch e enviei o branch para meu repositório bifurcado.
 git push origin 

Depois que Mayank enviou suas alterações para um novo branch e solicitou uma solicitação pull (PR), eu quis testar seu código antes de mesclar. Foi aqui que o git remote se tornou essencial:

  • Adicionar um controle remoto: adicionei o repositório dele como um controle remoto à minha máquina local:

  git remote add  


  • Fetch Commits: busquei os últimos commits e ramificações do repositório dele:

git fetch 


  • Tracking Branch: Criei um tracking branch para acompanhar suas atualizações sem afetar diretamente meu repositório:

git checkout -b  /


Identificação e resolução de bugs

Durante os testes, identifiquei dois problemas principais na filial do Mayank:

  • Configuração incorreta do diretório: a ferramenta estava lendo incorretamente o arquivo TOML da raiz do projeto em vez do diretório inicial do usuário.
  • Resolução do caminho: o código estava usando um caminho de arquivo relativo, causando erros quando o executei em minha máquina. Sugeri mudar para um caminho absoluto

// Resolve the path to the configuration file
const configPath = path.resolve(__dirname, "../.toml");

// Load configuration from config.toml
const config = loadConfig(configPath);


Depois de identificar esses problemas, discuti-os com Mayank no Slack e colaborei para encontrar uma solução. Também forneci feedback diretamente sobre sua solicitação de pull. Esse processo me fez sentir como se estivesse contribuindo para um projeto colaborativo do mundo real. Quando fiquei satisfeito com as correções, mesclei seu branch no branch principal e enviei-o para meu repositório remoto.

Conclusão

Este processo de trabalhar com controles remotos e fusão do Git tem sido incrivelmente educativo. Agora me sinto mais confiante em colaborar em bases de código compartilhadas. Anteriormente, muitas vezes eu me sentia sobrecarregado por vários commits e contribuições de diferentes desenvolvedores, mas agora tenho melhor controle e compreensão dos fluxos de trabalho do Git.

Ao trabalhar nesse recurso e integrar controles remotos do Git, ganhei experiência prática que será inestimável para projetos futuros.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/anhchienvu/first-time-working-with-git-remote-5dbl?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3