Fala Galera, vamos falar um pouco do Git e sua utilização, e claro, ver algumas questões sobre concursos para que você possa juntar a teoria com a prática.
Git é um sistema de controle de versão distribuído, essencial para o gerenciamento eficiente de projetos de software. Seu design permite que desenvolvedores colaborem em projetos de qualquer escala com agilidade e segurança. Antes de usar o Git, é necessário instalá-lo. O processo de instalação varia dependendo do sistema operacional, mas geralmente é direto e bem documentado na página oficial do Git.
Após a instalação, é importante configurar o Git com seu nome de usuário e e-mail usando os comandos git config –global user.name e git config –global user.email. Essas informações são usadas em cada commit. Para iniciar um novo projeto, use git init. Este comando cria um repositório Git local, preparando o terreno para o rastreamento de arquivos e commit.
Para trabalhar em um projeto existente, use git clone [url]. Este comando cria uma cópia local do repositório remoto, incluindo todo o histórico de commits.
O comando git add [arquivo] é usado para começar a rastrear novos arquivos ou mudanças em arquivos existentes. git add . adiciona todas as mudanças atuais.
Para salvar as mudanças no repositório, use git commit -m ‘[mensagem de commit]’. Cada commit tem uma mensagem associada que descreve as alterações realizadas.
Após commitar suas mudanças localmente, use git push para enviá-las ao repositório remoto. Isso atualiza o repositório remoto com as mudanças feitas localmente.
Use git pull para atualizar seu repositório local com as mais recentes mudanças do repositório remoto. Isso é crucial para manter a sincronização com a equipe.
git branch [nome-da-branch] é usado para criar novas ramificações (branches). Branches permitem que você desenvolva funcionalidades isoladamente do trabalho principal.
Para trocar entre branches, use git checkout [nome-da-branch]. Isso permite que você trabalhe em diferentes partes do projeto sem interferir no código principal.
Após completar o trabalho em uma branch, você pode usar git merge [nome-da-branch] para mesclar suas mudanças de volta à branch principal.
Conflitos acontecem quando duas mudanças entram em choque. O Git marca esses conflitos e permite que você os resolva manualmente antes de completar o merge.
Além disso temos 4 comandos mais avançados:
Entre eles, git diff, git rebase, git stash e o mal-entendido git revision são particularmente notáveis.
O git diff é um comando valioso usado para mostrar diferenças entre commits, entre o índice e a árvore de trabalho atual, e entre árvores de trabalho diferentes. Ele é fundamental para revisões de código, permitindo aos desenvolvedores entender e verificar mudanças antes de integrá-las ao projeto principal. Este comando ajuda a garantir a qualidade e a consistência do código, sendo uma ferramenta indispensável para revisões e colaboração em equipe.
O git rebase é utilizado para reordenar, editar ou combinar commits existentes. Este comando “rebaseia” os commits sobre um novo ponto base, como uma nova versão do branch principal, o que ajuda a manter um histórico de commits limpo e linear. O rebase é particularmente útil em projetos grandes para manter a clareza histórica do código, mas deve ser usado com cuidado, pois pode reescrever o histórico de commits.
O git stash permite que os desenvolvedores armazenem temporariamente mudanças não prontas para commit, retirando-as do diretório de trabalho. Este comando é extremamente útil para trocas rápidas entre diferentes tarefas ou branches, permitindo aos desenvolvedores guardar seu progresso atual em um local seguro sem ter que fazer commits incompletos.
Em relação ao git revision, há um equívoco comum, pois esse comando não existe no Git. Para funcionalidades que poderiam ser atribuídas ao hipotético git revision, usamos comandos como git log, para revisar o histórico de commits, e git blame, para identificar quem fez mudanças específicas em cada linha de um arquivo. O git blame é especialmente útil em equipes grandes, onde várias pessoas modificam o mesmo arquivo, ajudando a rastrear a origem de alterações específicas e potenciais bugs.
Esses comandos, git diff, git rebase, git stash e o entendimento correto sobre git blame em vez de git revision, são essenciais para o gerenciamento eficaz de projetos de software, permitindo uma colaboração eficiente e um controle detalhado das mudanças no código. Conhecer e dominar esses comandos é crucial para qualquer desenvolvedor que trabalha com o Git, oferecendo um controle robusto e flexível sobre o desenvolvimento e manutenção do sistema.
Figura 1 – Comandos Git
Conclusão e Questão de Concurso
Dominar o Git é crucial para qualquer desenvolvedor de software. Seus comandos facilitam a colaboração e garantem um gerenciamento eficiente do código-fonte. Agora duas questão sobre os comandos e comentários no final do artigo.
Questão de Concurso:
Ano: 2023 Banca: IBFC Órgão: SAEB-BA Prova: IBFC – 2023 – SAEB-BA – Analista Técnico – Tecnologia da Informação (Desenvolvimento)
Com relação ao comando git clone, assinale a alternativa que apresenta qual o propósito deste comando.
Alternativas:
A) Criar uma cópia de um repositório remoto em seu ambiente de desenvolvimento local.
B) Enviar alterações locais para o repositório remoto.
C) Criar uma ramificação no repositório local.
D) Criar um novo repositório e enviar as alterações para um repositório remoto.
Ano: 2023 Banca: FADE – UFPE Órgão: UFPE Prova: FADE – UFPE – 2023 – UFPE – Analista de Tecnologia da Informação – Área: Sistemas
Acerca do sistema de controle de versão distribuído Git, analise as proposições a seguir.
1) O comando git diff exibe as mudanças entre os commits, o commit, a árvore de trabalho etc.
2) O comando git rebase redefine o HEAD atual para a condição especificada.
3) O comando git stash armazena as alterações em um diretório fora do diretório de trabalho.
4) O comando git revision exibe qual revisão e qual foi o autor que alterou cada linha de um arquivo pela última vez.
Estão corretas, apenas:
Alternativas
- 1 e 2.
- 2 e 3.
- 3 e 4.
- 1 e 3.
- 2 e 4.
Olá, pessoal. Trago dessa vez mais um questionamento dos nossos alunos,
Então pessoal, deu para perceber que o assunto é recorrente mas em poucos casos temos questões polêmicas, o importante é ter o conteúdo fixado para na hora marcar com segurança.
Dessa forma encerro esse artigo e desejo sucesso!
Até mais!
Gabarito:
Questão 1:
A resposta correta é a Alternativa A. O comando git clone é utilizado para criar uma cópia de um repositório remoto no ambiente de desenvolvimento local. Ele permite que o desenvolvedor tenha uma versão local completa do projeto, incluindo todo o histórico de commits, facilitando o trabalho offline e a sincronização posterior com o repositório remoto.
Questão 2:
Vamos analisar cada uma das proposições apresentadas:
1) **O comando git diff exibe as mudanças entre os commits, o commit, a árvore de trabalho etc.**
– **Correta.** O comando `git diff` é utilizado para exibir as diferenças entre commits, entre o commit e a árvore de trabalho, e entre a árvore de trabalho e o índice.
2) **O comando git rebase redefine o HEAD atual para a condição especificada.**
– **Incorreta.** O comando `git rebase` é usado para rebasear uma série de commits sobre um novo base commit. Ele não redefine o HEAD para uma condição especificada, mas sim move commits para um novo ponto base.
3) **O comando git stash armazena as alterações em um diretório fora do diretório de trabalho.**
– **Correta.** O comando `git stash` salva temporariamente as alterações que ainda não estão prontas para serem commitadas, retirando-as do diretório de trabalho e armazenando em uma área intermediária.
4) **O comando git revision exibe qual revisão e qual foi o autor que alterou cada linha de um arquivo pela última vez.**
– **Incorreta.** Não existe um comando `git revision`. Para exibir informações sobre a revisão e o autor que alterou cada linha de um arquivo, utiliza-se o comando `git blame`.
Portanto, as proposições corretas são a 1 e a 3, fazendo com que a alternativa correta seja:
D) 1 e 3.
Professor Washington Almeida
Participe da conversa