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.)