Git #2 - Branch's (Merge, Squash 및 Rebase)

14962 단어 gitbraziliandevs
등록을 완료할 수 있습니다.

Para este segundo post, 활용 동영상:

  • branch
  • checkout

  • merge
  • squash

  • rebase
  • recuperando versões dentro dos commits com checkout

  • 지점(Ramificação)

    Nunca mais desenvolver na master. Sempre criar uma branch nova e depois fazer o merge.


    A branch criada será uma cópia da master.

    Para criar uma nova branch, por exemplo chamada dev, podemos usar o comando abaixo:

    $ git branch dev
    


    Podemos olhar를 분기로 com o comando:

    $ git branch
    


    분기 제거제dev, o comando:

    $ git branch -d dev
    


    Navegando 및 criando 지점 com o 체크 아웃

    O nosso projeto está assim. Estamos na master com um commit já efetuado.


    Para navegar entre as branchs podemos usar o checkout . Mas neste caso não existe ainda uma branch chamada feature/client .

    $ git checkout feature/client
    error: pathspec 'feature/client' did not match any file(s) known to git
    


    Então podemos usar o -b para criar a branch. Além de criar, vai entrar na branch feature/client .

    $ git checkout -b feature/client
    Switched to a new branch 'feature/client'
    




    Criando e fazendo o commit do arquivo 클라이언트:


    Ao trocar para a branch master, podemos ver que não existe mais o arquivo client, criado na branch feature/client .


    Se trocarmos para a branchfeature/client, podemos ver que o arquivoclient가 존재합니다.

    Fazendo a junção das branchs com 병합

    Primeiro retornamos para a branch master, pois queremos mesclar a branch feature/client dentro da master .

    Depois usamos o comando merge para juntar.



    Vamos fazer esse 시나리오:


    Vamos desfazer o que fizemos excluindo a 파스타 do git.

    $ rm -rf .git
    


    E, podemos apagar os arquivos criados.

    Após, podemos iniciar o git novamente.

    $ git init
    


    E criar dois arquivos:





    $ git log --oneline
    



    4abee71 (HEAD -> master) m2
    7710d41 m1
    (END)
    


    Criando a branchfeature/x e depois criando o arquivof1:



    $ git checkout -b feature/x
    




    $ git log --oneline
    



    26bdac8 (HEAD -> feature/x) f1
    4abee71 (master) m2
    7710d41 m1
    (END)
    


    Conforme a linha do tempo, agora vamos criar o arquivo m3 na master :




    Conforme a linha do tempo, agora vamos criar o arquivo f2 na feature/x :




    Conforme a linha do tempo, agora vamos criar o arquivo m4 na master :




    Conforme a linha do tempo, agora vamos criar o arquivo f3 na feature/x :



    코모바모스 메스클라 아고라????



    Vamos mesclar afeature/x namaster :

    $ git checkout master  
    



    $ git merge feature/x 
    


    Após o comando acima, como as duas branchs possuem alterações, o merge gera um commit adicional, que vai marcar a mescla das duas branchs.


    Podemos editar essa mensagem, ou apenas sair com o comando :wq!
    e agora o merge foi feito:


    $ git log --oneline
    




    ordem dos commit을 관찰하십시오. Foi colocado exatamente na posição de acordo com o tempo que eles acontecerão.



    Fazendo a junção das branchs com 스쿼시

    Desfazendo o merge anterior:

    $ git reset HEAD~1 --hard
    

    O --hard é usado porque queremos descartar os arquivos (que foram adicionados no merge) da branch master.



    Agora vamos fazer o merge com a opção--squash


    $ git log --oneline
    






    Fazendo a junção das branchs com rebase

    Desfazendo novamente o merge anterior:

    $ git reset HEAD~1 --hard
    

    Agora voltamos para esse cenário:



    Agora vamos usar o rebase :

    $ git rebase feature/x
    


    O rebase não gera um commit:



    Afeature/x foi introduzida entre os commits damaster:


    !!!!!! CUIDADO ao usar o rebase 데사 마네이라 !!!!!!!!

    O rebase é indicado se eu fosse mesclar ao contrário, a master dentro da feature/x , pra não gerar vários commits de merge.

    Recuperando versões dentro dos commits com checkout

    Alterando o arquivo f1 :



    Alterando o arquivo f1 pela segunda vez:



    Escolhendo a versão do f1 queremos recuperar:

    $ git log --oneline
    


    Copiando o codigo:


    Primeiro a hash e depois o nome do arquivo:

    $ git checkout 39a89ef f1 
    




    $ git log --oneline
    




    시대 이소!

    Para mais detalhes ver o vídeo:

    좋은 웹페이지 즐겨찾기