Git #2 - Branch's (Merge, Squash 및 Rebase)
Para este segundo post, 활용 동영상:
merge
지점(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 branch
feature/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 branch
feature/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 a
feature/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:A
feature/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:
Reference
이 문제에 관하여(Git #2 - Branch's (Merge, Squash 및 Rebase)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/maiquitome/meu-estudo-de-git-2-branchs-merge-squash-e-rebase-144n텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)