Rui  Silva

Rui Silva

1641568440

Como Escrever Uma Mensagem Git Commit Melhor

Quando o Git é apresentado pela primeira vez, é normal que os desenvolvedores se sintam desconfortáveis ​​com o processo.

Você pode se sentir inseguro ao encontrar a mensagem de commit do Git, sem saber como resumir adequadamente as mudanças que você fez e por que as fez. Mas quanto mais cedo em sua carreira você puder desenvolver bons hábitos de comprometimento, melhor.

Você já se perguntou como pode melhorar suas mensagens de commit do Git? Este guia descreve as etapas para elevar suas mensagens de commit que você pode começar a implementar hoje.

Este artigo pressupõe que você já entende o fluxo de trabalho básico do Git. Se não, sugiro a leitura do Manual do Git .

Também é importante observar que você deve seguir as convenções de sua equipe antes de mais nada. Essas dicas são baseadas em sugestões baseadas em pesquisas e consenso geral da comunidade. Mas, no final deste artigo, você pode ter algumas implementações para sugerir que podem ajudar o fluxo de trabalho de sua equipe.

Acho que o git entra em um reino totalmente diferente no momento em que você começa a trabalhar em equipes - há tantos fluxos e maneiras diferentes e legais que as pessoas podem comprometer código, compartilhar código e adicionar código ao seu repo de código aberto ou fechado . - Scott Tolinski, Syntax.fm .

Por que você deve escrever mensagens de commit melhores?

Eu desafio você a abrir um projeto pessoal ou qualquer repositório para esse assunto e executar git logpara ver uma lista de mensagens de commit antigas. A grande maioria de nós que já passou por tutoriais ou fez correções rápidas dirá "Sim ... Não tenho absolutamente nenhuma ideia do que quero dizer com 'Estilo de correção' 6 meses atrás."

Talvez você tenha encontrado um código em um ambiente profissional onde não tinha ideia do que ele estava fazendo ou para o qual ele se destinava. Você foi deixado no escuro, sem comentários de código ou um histórico rastreável, e até mesmo se perguntando "quais são as chances de que isso quebrará tudo se eu remover esta linha?"

De volta para o Futuro

Ao escrever bons commits, você está simplesmente se preparando para o futuro. Você pode economizar horas para você e / ou seus colegas de trabalho vasculhando enquanto soluciona problemas, fornecendo essa descrição útil.

O tempo extra que leva para escrever uma mensagem de confirmação atenciosa como uma carta para o seu eu futuro em potencial é extremamente valioso. Em projetos de grande escala, a documentação é imprescindível para manutenção.

A colaboração e a comunicação são de extrema importância nas equipes de engenharia. A mensagem de confirmação do Git é um excelente exemplo disso. Eu sugiro fortemente estabelecer uma convenção para enviar mensagens em sua equipe se você ainda não tiver uma.

A anatomia de uma mensagem de compromisso

Básico:

git commit -m <message>

Detalhado:

git commit -m <title> -m <description>

5 etapas para escrever mensagens de compromisso melhores

Vamos resumir as diretrizes sugeridas:

  1. Letras maiúsculas e pontuação: coloque a primeira palavra em maiúscula e não termine com pontuação. Se estiver usando confirmações convencionais, lembre-se de usar todas as letras minúsculas.
  2. Humor: use o humor obrigatório na linha de assunto. Exemplo - Add fix for dark mode toggle state. O humor imperativo dá o tom com que você está dando uma ordem ou pedido.
  3. Tipo de confirmação: especifique o tipo de confirmação. É recomendado e pode ser ainda mais benéfico ter um conjunto consistente de palavras para descrever suas alterações. Exemplo: Bugfix, Update, Refactor, Bump e assim por diante. Consulte a seção sobre confirmações convencionais abaixo para obter informações adicionais.
  4. Comprimento: idealmente, a primeira linha não deve ter mais de 50 caracteres e o corpo deve ser restrito a 72 caracteres.
  5. Conteúdo: seja direto, tente eliminar palavras e frases de preenchimento nessas frases (exemplos: embora, talvez, eu acho, mais ou menos). Pense como um jornalista.

Como Encontrar Seu Jornalista Interno

Nunca pensei que meu curso de Jornalismo beneficiaria minha futura carreira como Engenheiro de Software, mas aqui estamos!

Jornalistas e escritores fazem perguntas a si mesmos para garantir que seu artigo seja detalhado, direto e responda a todas as perguntas do leitor.

Ao escrever um artigo, procuram responder quem , o quê , onde , quando , porquê e como.  Para fins de commit, é mais importante responder o quê e por quê para nossas mensagens de commit.

Para chegar a confirmações bem pensadas, considere o seguinte:

  • Por que fiz essas alterações?
  • Que efeito minhas alterações fizeram?
  • Por que a mudança foi necessária?
  • Quais são as mudanças em referência?

Suponha que o leitor não entenda o que o commit está endereçando. Eles podem não ter acesso à história abordando os antecedentes detalhados da mudança.

Não espere que o código seja autoexplicativo. Isso é semelhante ao ponto acima.

Pode parecer óbvio para você, o programador, se você estiver atualizando algo como estilos CSS, uma vez que é visual. Você pode ter um conhecimento íntimo de por que essas mudanças foram necessárias na época, mas é improvável que se lembre por que fez isso centenas de solicitações de pull posteriormente.

Deixe claro por que essa alteração foi feita e observe se ela pode ser crucial para a funcionalidade ou não.

Veja as diferenças abaixo:

  1. git commit -m 'Add margin'
  2. git commit -m 'Add margin to nav items to prevent them from overlapping the logo'

Está claro qual deles seria mais útil para leitores futuros.

Finja que você está escrevendo um artigo importante e interessante. Dê o título que resumirá o que aconteceu e o que é importante. Em seguida, forneça mais detalhes sobre o corpo de forma organizada.

No cinema, é frequentemente citado "mostre, não diga" usando recursos visuais como meio de comunicação em comparação com uma explicação verbal do que está acontecendo.

Em nosso caso, " diga , não [apenas] mostre" - embora tenhamos alguns recursos visuais à nossa disposição, como o navegador, a maioria das especificações vêm da leitura do código físico.

Se você é um usuário VSCode, baixe a extensão Git Blame . Este é um excelente exemplo de quando mensagens de commit úteis são úteis para futuros desenvolvedores.

Este plugin irá listar a pessoa que fez a mudança, a data das mudanças, bem como a mensagem de commit comentada inline.

Imagine como isso poderia ser útil para solucionar um bug ou rastrear as alterações feitas. Outras menções honrosas para ver as informações históricas do Git são Git History e GitLens .

Compromissos Convencionais

Agora que cobrimos a estrutura de commit básica de uma boa mensagem de commit, gostaria de apresentar os commits convencionais para ajudar a fornecer alguns detalhes sobre a criação de mensagens de commit sólidas.

Na D2iQ, usamos o Convencional Commit, uma ótima prática entre as equipes de engenharia. A confirmação convencional é uma convenção de formatação que fornece um conjunto de regras para formular uma estrutura de mensagem de confirmação consistente como esta:

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

O tipo de confirmação pode incluir o seguinte:

  • feat - um novo recurso é introduzido com as mudanças
  • fix - ocorreu uma correção de bug
  • chore - mudanças que não se relacionam a uma correção ou recurso e não modificam os arquivos src ou de teste (por exemplo, atualizar dependências)
  • refactor - código refatorado que não corrige um bug nem adiciona um recurso
  • docs - atualizações de documentação, como o README ou outros arquivos de marcação
  • style - alterações que não afetam o significado do código, provavelmente relacionadas à formatação do código, como espaço em branco, ponto e vírgula ausente e assim por diante.
  • test - incluindo novos ou corrigindo testes anteriores
  • perf - melhorias de desempenho
  • ci - relacionado à integração contínua
  • build - mudanças que afetam o sistema de construção ou dependências externas
  • revert - reverte um commit anterior

A linha de assunto do tipo de confirmação deve estar toda em letras minúsculas com um limite de caracteres para encorajar descrições sucintas.

O corpo de confirmação opcional deve ser usado para fornecer mais detalhes que não cabem nas limitações de caractere da descrição da linha de assunto.

Também é um bom local para BREAKING CHANGE: <description>observar o motivo de uma alteração significativa no commit.

O rodapé também é opcional. Nós usamos o rodapé para vincular a história JIRA que seria fechada com essas mudanças, por exemplo: Closes D2IQ-<JIRA #>.

Exemplo Completo de Compromisso Convencional

fix: fix foo to enable bar

This fixes the broken behavior of the component by doing xyz. 

BREAKING CHANGE
Before this fix foo wasn't enabled at all, behavior changes from <old> to <new>

Closes D2IQ-12345

Para garantir que essas convenções de confirmação permaneçam consistentes entre os desenvolvedores, o linting de mensagem de confirmação pode ser configurado antes que as mudanças possam ser enviadas. Commitizen é uma ótima ferramenta para impor padrões, sincronizar versões semânticas, junto com outros recursos úteis.

Para ajudar na adoção dessas convenções, é útil incluir diretrizes para commits em um arquivo de contribuição ou README em seus projetos.

Commit convencional funciona particularmente bem com versionamento semântico (saiba mais em SemVer.org ) onde os tipos de commit podem atualizar a versão apropriada para lançamento. Você também pode ler mais sobre confirmações convencionais aqui .

Confirmar comparações de mensagens

Reveja as seguintes mensagens e veja quantas das diretrizes sugeridas eles assinalaram em cada categoria.

Boa

  • feat: improve performance with lazy load implementation for images
  • chore: update npm dependency to latest version
  • Fix bug preventing users from submitting the subscribe form
  • Update incorrect client phone number within footer body per client request

Ruim

  • fixed bug on landing page
  • Changed style
  • oops
  • I think I fixed it this time?
  • mensagens de commit vazias

Conclusão

Escrever boas mensagens de commit é uma habilidade extremamente benéfica para desenvolver e ajuda você a se comunicar e colaborar com sua equipe. Os commits servem como um arquivo de mudanças. Eles podem se tornar um manuscrito antigo para nos ajudar a decifrar o passado e tomar decisões fundamentadas no futuro.

Existe um conjunto existente de padrões acordados que podemos seguir, mas contanto que sua equipe concorde com uma convenção que seja descritiva com leitores futuros em mente, haverá, sem dúvida, benefícios de longo prazo.

Neste artigo, aprendemos algumas táticas para aumentar o nível de nossas mensagens de commit. Como você acha que essas técnicas podem melhorar seus commits?

Espero que você tenha aprendido algo novo, obrigado pela leitura!

fonte: https://www.freecodecamp.org/news/how-to-write-better-git-commit-messages/

#git 

What is GEEK

Buddha Community

Como Escrever Uma Mensagem Git Commit Melhor
Madyson  Reilly

Madyson Reilly

1604109000

Best Practices for Using Git

Git has become ubiquitous as the preferred version control system (VCS) used by developers. Using Git adds immense value especially for engineering teams where several developers work together since it becomes critical to have a system of integrating everyone’s code reliably.

But with every powerful tool, especially one that involves collaboration with others, it is better to establish conventions to follow lest we shoot ourselves in the foot.

At DeepSource, we’ve put together some guiding principles for our own team that make working with a VCS like Git easier. Here are 5 simple rules you can follow:

1. Make Clean, Single-Purpose Commits

Oftentimes programmers working on something get sidetracked into doing too many things when working on one particular thing — like when you are trying to fix one particular bug and you spot another one, and you can’t resist the urge to fix that as well. And another one. Soon, it snowballs and you end up with so many changes all going together in one commit.

This is problematic, and it is better to keep commits as small and focused as possible for many reasons, including:

  • It makes it easier for other people in the team to look at your change, making code reviews more efficient.
  • If the commit has to be rolled back completely, it’s far easier to do so.
  • It’s straightforward to track these changes with your ticketing system.

Additionally, it helps you mentally parse changes you’ve made using git log.

#open source #git #git basics #git tools #git best practices #git tutorials #git commit

Rui  Silva

Rui Silva

1641568440

Como Escrever Uma Mensagem Git Commit Melhor

Quando o Git é apresentado pela primeira vez, é normal que os desenvolvedores se sintam desconfortáveis ​​com o processo.

Você pode se sentir inseguro ao encontrar a mensagem de commit do Git, sem saber como resumir adequadamente as mudanças que você fez e por que as fez. Mas quanto mais cedo em sua carreira você puder desenvolver bons hábitos de comprometimento, melhor.

Você já se perguntou como pode melhorar suas mensagens de commit do Git? Este guia descreve as etapas para elevar suas mensagens de commit que você pode começar a implementar hoje.

Este artigo pressupõe que você já entende o fluxo de trabalho básico do Git. Se não, sugiro a leitura do Manual do Git .

Também é importante observar que você deve seguir as convenções de sua equipe antes de mais nada. Essas dicas são baseadas em sugestões baseadas em pesquisas e consenso geral da comunidade. Mas, no final deste artigo, você pode ter algumas implementações para sugerir que podem ajudar o fluxo de trabalho de sua equipe.

Acho que o git entra em um reino totalmente diferente no momento em que você começa a trabalhar em equipes - há tantos fluxos e maneiras diferentes e legais que as pessoas podem comprometer código, compartilhar código e adicionar código ao seu repo de código aberto ou fechado . - Scott Tolinski, Syntax.fm .

Por que você deve escrever mensagens de commit melhores?

Eu desafio você a abrir um projeto pessoal ou qualquer repositório para esse assunto e executar git logpara ver uma lista de mensagens de commit antigas. A grande maioria de nós que já passou por tutoriais ou fez correções rápidas dirá "Sim ... Não tenho absolutamente nenhuma ideia do que quero dizer com 'Estilo de correção' 6 meses atrás."

Talvez você tenha encontrado um código em um ambiente profissional onde não tinha ideia do que ele estava fazendo ou para o qual ele se destinava. Você foi deixado no escuro, sem comentários de código ou um histórico rastreável, e até mesmo se perguntando "quais são as chances de que isso quebrará tudo se eu remover esta linha?"

De volta para o Futuro

Ao escrever bons commits, você está simplesmente se preparando para o futuro. Você pode economizar horas para você e / ou seus colegas de trabalho vasculhando enquanto soluciona problemas, fornecendo essa descrição útil.

O tempo extra que leva para escrever uma mensagem de confirmação atenciosa como uma carta para o seu eu futuro em potencial é extremamente valioso. Em projetos de grande escala, a documentação é imprescindível para manutenção.

A colaboração e a comunicação são de extrema importância nas equipes de engenharia. A mensagem de confirmação do Git é um excelente exemplo disso. Eu sugiro fortemente estabelecer uma convenção para enviar mensagens em sua equipe se você ainda não tiver uma.

A anatomia de uma mensagem de compromisso

Básico:

git commit -m <message>

Detalhado:

git commit -m <title> -m <description>

5 etapas para escrever mensagens de compromisso melhores

Vamos resumir as diretrizes sugeridas:

  1. Letras maiúsculas e pontuação: coloque a primeira palavra em maiúscula e não termine com pontuação. Se estiver usando confirmações convencionais, lembre-se de usar todas as letras minúsculas.
  2. Humor: use o humor obrigatório na linha de assunto. Exemplo - Add fix for dark mode toggle state. O humor imperativo dá o tom com que você está dando uma ordem ou pedido.
  3. Tipo de confirmação: especifique o tipo de confirmação. É recomendado e pode ser ainda mais benéfico ter um conjunto consistente de palavras para descrever suas alterações. Exemplo: Bugfix, Update, Refactor, Bump e assim por diante. Consulte a seção sobre confirmações convencionais abaixo para obter informações adicionais.
  4. Comprimento: idealmente, a primeira linha não deve ter mais de 50 caracteres e o corpo deve ser restrito a 72 caracteres.
  5. Conteúdo: seja direto, tente eliminar palavras e frases de preenchimento nessas frases (exemplos: embora, talvez, eu acho, mais ou menos). Pense como um jornalista.

Como Encontrar Seu Jornalista Interno

Nunca pensei que meu curso de Jornalismo beneficiaria minha futura carreira como Engenheiro de Software, mas aqui estamos!

Jornalistas e escritores fazem perguntas a si mesmos para garantir que seu artigo seja detalhado, direto e responda a todas as perguntas do leitor.

Ao escrever um artigo, procuram responder quem , o quê , onde , quando , porquê e como.  Para fins de commit, é mais importante responder o quê e por quê para nossas mensagens de commit.

Para chegar a confirmações bem pensadas, considere o seguinte:

  • Por que fiz essas alterações?
  • Que efeito minhas alterações fizeram?
  • Por que a mudança foi necessária?
  • Quais são as mudanças em referência?

Suponha que o leitor não entenda o que o commit está endereçando. Eles podem não ter acesso à história abordando os antecedentes detalhados da mudança.

Não espere que o código seja autoexplicativo. Isso é semelhante ao ponto acima.

Pode parecer óbvio para você, o programador, se você estiver atualizando algo como estilos CSS, uma vez que é visual. Você pode ter um conhecimento íntimo de por que essas mudanças foram necessárias na época, mas é improvável que se lembre por que fez isso centenas de solicitações de pull posteriormente.

Deixe claro por que essa alteração foi feita e observe se ela pode ser crucial para a funcionalidade ou não.

Veja as diferenças abaixo:

  1. git commit -m 'Add margin'
  2. git commit -m 'Add margin to nav items to prevent them from overlapping the logo'

Está claro qual deles seria mais útil para leitores futuros.

Finja que você está escrevendo um artigo importante e interessante. Dê o título que resumirá o que aconteceu e o que é importante. Em seguida, forneça mais detalhes sobre o corpo de forma organizada.

No cinema, é frequentemente citado "mostre, não diga" usando recursos visuais como meio de comunicação em comparação com uma explicação verbal do que está acontecendo.

Em nosso caso, " diga , não [apenas] mostre" - embora tenhamos alguns recursos visuais à nossa disposição, como o navegador, a maioria das especificações vêm da leitura do código físico.

Se você é um usuário VSCode, baixe a extensão Git Blame . Este é um excelente exemplo de quando mensagens de commit úteis são úteis para futuros desenvolvedores.

Este plugin irá listar a pessoa que fez a mudança, a data das mudanças, bem como a mensagem de commit comentada inline.

Imagine como isso poderia ser útil para solucionar um bug ou rastrear as alterações feitas. Outras menções honrosas para ver as informações históricas do Git são Git History e GitLens .

Compromissos Convencionais

Agora que cobrimos a estrutura de commit básica de uma boa mensagem de commit, gostaria de apresentar os commits convencionais para ajudar a fornecer alguns detalhes sobre a criação de mensagens de commit sólidas.

Na D2iQ, usamos o Convencional Commit, uma ótima prática entre as equipes de engenharia. A confirmação convencional é uma convenção de formatação que fornece um conjunto de regras para formular uma estrutura de mensagem de confirmação consistente como esta:

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

O tipo de confirmação pode incluir o seguinte:

  • feat - um novo recurso é introduzido com as mudanças
  • fix - ocorreu uma correção de bug
  • chore - mudanças que não se relacionam a uma correção ou recurso e não modificam os arquivos src ou de teste (por exemplo, atualizar dependências)
  • refactor - código refatorado que não corrige um bug nem adiciona um recurso
  • docs - atualizações de documentação, como o README ou outros arquivos de marcação
  • style - alterações que não afetam o significado do código, provavelmente relacionadas à formatação do código, como espaço em branco, ponto e vírgula ausente e assim por diante.
  • test - incluindo novos ou corrigindo testes anteriores
  • perf - melhorias de desempenho
  • ci - relacionado à integração contínua
  • build - mudanças que afetam o sistema de construção ou dependências externas
  • revert - reverte um commit anterior

A linha de assunto do tipo de confirmação deve estar toda em letras minúsculas com um limite de caracteres para encorajar descrições sucintas.

O corpo de confirmação opcional deve ser usado para fornecer mais detalhes que não cabem nas limitações de caractere da descrição da linha de assunto.

Também é um bom local para BREAKING CHANGE: <description>observar o motivo de uma alteração significativa no commit.

O rodapé também é opcional. Nós usamos o rodapé para vincular a história JIRA que seria fechada com essas mudanças, por exemplo: Closes D2IQ-<JIRA #>.

Exemplo Completo de Compromisso Convencional

fix: fix foo to enable bar

This fixes the broken behavior of the component by doing xyz. 

BREAKING CHANGE
Before this fix foo wasn't enabled at all, behavior changes from <old> to <new>

Closes D2IQ-12345

Para garantir que essas convenções de confirmação permaneçam consistentes entre os desenvolvedores, o linting de mensagem de confirmação pode ser configurado antes que as mudanças possam ser enviadas. Commitizen é uma ótima ferramenta para impor padrões, sincronizar versões semânticas, junto com outros recursos úteis.

Para ajudar na adoção dessas convenções, é útil incluir diretrizes para commits em um arquivo de contribuição ou README em seus projetos.

Commit convencional funciona particularmente bem com versionamento semântico (saiba mais em SemVer.org ) onde os tipos de commit podem atualizar a versão apropriada para lançamento. Você também pode ler mais sobre confirmações convencionais aqui .

Confirmar comparações de mensagens

Reveja as seguintes mensagens e veja quantas das diretrizes sugeridas eles assinalaram em cada categoria.

Boa

  • feat: improve performance with lazy load implementation for images
  • chore: update npm dependency to latest version
  • Fix bug preventing users from submitting the subscribe form
  • Update incorrect client phone number within footer body per client request

Ruim

  • fixed bug on landing page
  • Changed style
  • oops
  • I think I fixed it this time?
  • mensagens de commit vazias

Conclusão

Escrever boas mensagens de commit é uma habilidade extremamente benéfica para desenvolver e ajuda você a se comunicar e colaborar com sua equipe. Os commits servem como um arquivo de mudanças. Eles podem se tornar um manuscrito antigo para nos ajudar a decifrar o passado e tomar decisões fundamentadas no futuro.

Existe um conjunto existente de padrões acordados que podemos seguir, mas contanto que sua equipe concorde com uma convenção que seja descritiva com leitores futuros em mente, haverá, sem dúvida, benefícios de longo prazo.

Neste artigo, aprendemos algumas táticas para aumentar o nível de nossas mensagens de commit. Como você acha que essas técnicas podem melhorar seus commits?

Espero que você tenha aprendido algo novo, obrigado pela leitura!

fonte: https://www.freecodecamp.org/news/how-to-write-better-git-commit-messages/

#git 

Git Rebase Tutorial and Comparison with Git Merge

There are many ways of working with git, if they’re clean, and don’t do damages, probably most of them are good.

But same as space vs. tab, in the IT world is a war between fans of rebase, and fans of git merge.

There are tons of arguments about:

-Which way is better?

-Which one is cleaner?

-Which is more comfortable?

-Which one gives a cleaner git graph?

-Why it’s important, and which one is more dangerous?

#quick help #tutorials #git #git branch #git commit #git interactive rebase

7 Best Practices in GIT for Your Code Quality

There is no doubt that Git plays a significant role in software development. It allows developers to work on the same code base at the same time. Still, developers struggle for code quality. Why? They fail to follow git best practices. In this post, I will explain seven core best practices of Git and a Bonus Section.

1. Atomic Commit

Committing something to Git means that you have changed your code and want to save these changes as a new trusted version.

Version control systems will not limit you in how you commit your code.

  • You can commit 1000 changes in one single commit.
  • Commit all the dll and other dependencies
  • Or you can check in broken code to your repository.

But is it good? Not quite.

Because you are compromising code quality, and it will take more time to review codeSo overall, team productivity will be reduced. The best practice is to make an atomic commit.

When you do an atomic commit, you’re committing only one change. It might be across multiple files, but it’s one single change.

2. Clarity About What You Can (& Can’t) Commit

Many developers make some changes, then commit, then push. And I have seen many repositories with unwanted files like dll, pdf, etc.

You can ask two questions to yourself, before check-in your code into the repository

  1. Are you suppose to check-in all these files?
  2. Are they part of your source code?

You can simply use the .gitignore file to avoid unwanted files in the repository. If you are working on more then one repo, it’s easy to use a global .gitignore file (without adding or pushing). And .gitignore file adds clarity and helps you to keep your code clean. What you can commit, and it will automatically ignore the unwanted files like autogenerated files like .dll and .class, etc.

#git basics #git command #git ignore #git best practices #git tutorial for beginners #git tutorials

Myriam  Rogahn

Myriam Rogahn

1599234420

GitHub for Data Scientists: Commit

This article is part of a follow-along series on GitHub collaboration. In this article, we will try to understand commits in detail, like components of a commit, how to delete commit before and after push or how to reset it.

If you are a beginner and want to understand the practical application, I will recommend a quick read into the article, Collaborate on GitHub like Pro: **Part1 **before you start with this article.

The series, Collaborate on GitHub like pro, focus on specific topics:

  1. Getting started on GitHubCollaborate on GitHub like Pro: Part1
  2. **Branching: **Collaborate on GitHub like Pro: Part2
  3. **Commit: **Collaborate on GitHub like Pro: Commit

What is a commit?

Commits are created with the git commit command to capture the state of a project at that point in time. When you make a commit, Git stores a commit object that contains a pointer to the snapshot of the content you staged (indexed), please see below commit stage highlighted in red box.

Image for post

Commit flowchart

Components of a commit:

Let us take a look into the commit object, shown below. I have highlighted the three main components in the commit, hashhead and branch (master).

Image for post

Image for post

Commit Object

Hash: Every commit creates unique hash for the respective commits. These hashes can later be used to revert to that version or find details on the commit. Usually, only the first 7 characters are used to look for respective commit.

Head: Shows which branch you are working on currently. In the above image, head is pointing to master, which means currently you are working on the master branch.

**Branch: **By default, the first line of development (branch) is named as master. All the preceding work on different branches gets merged to master.

To understand this concept further refer to this blog post.

Image for post

Master branch after three commits

Switch to a specific commit

There are multiple ways to checkout to a specific commit based on the use cases. You might want to make a temporary or permanent switch. Sometimes you might want to go a few steps back and maybe add a feature from that step onwards.

#commit-git #git-revert-commit #checkout-git #show-heads #git-delete-branch