git merge
: 브랜치 합치기.
conflict
:main
브랜치와second
브랜치에서 중복되는 파일을 수정할 경우conflict
(충돌) 일어남, 이때 개발자가 어떤부분으로 적용할지 판단해서 수정해야한다.- 병합의 단위: 브랜치
git push
: 원격 저장소에 저장.
- 모든 로컬 저장소를 원격 저장소에
push
할 필요는 없다, 유의미할 경우push
.git pull
: 원격 저장소에 변경된 내용을 로컬 저장소로 가져옴.
second
브랜치에 존재하는 파일은one
two
three
세개의 파일이다.four
파일을 새로 생성해 준 후v4
라는 메시지로 네번째 커밋을 해준다.
second
브랜치의 커밋 로그는 위와 같다.- 참고로
main
브랜치의 커밋 로그는v3
까지만 존재.
main
브랜치로 이동 및ls
명령어를 통해one
two
three
파일만 존재함을 확인.
git merge second
명령어를 통해main
브랜치에서second
를 병합했다.second
브랜치에서 생성한four
파일이 병합 후main
브랜치에서도 존재함을 확인할 수 있다.
main
브랜치에서 커밋 로그를 확인하면second
브랜치에서 커밋한v4
커밋이 새로 생김.
main
브랜치와second
브랜치에서 중복되는 파일을 수정할 경우conflict
(충돌) 일어남, 이때 개발자가 어떤부분으로 적용할지 판단해서 수정해야한다.
main
second
브랜치에서four
파일을 둘다 수정 후 병합을 해보도록 하겠다.
main
브랜치에서four
파일에modified from main branch
라는 내용을 추가한 후modified four file from main branch
라는 메시지로 새로운 커밋.
second
브랜치에서four
파일에modified from second branch
라는 내용을 추가한 후modified four file form second branch
라는 메시지로 새로운 커밋.
main
브랜치로 변경 후git merge second
를 실행시키면 충돌이 일어난다.
main
브랜치의four
파일과second
브랜치의four
파일이 동시에 수정되었기 때문.cat four
명령어를 통해four
파일의 내용이 수정되었음을 확인할 수 있다.
vi four
명령어를 통해modified from second branch
내용만 남겨주고 나머지는 다 지워준다.
- 수정된 부분을 새롭게 추가해 준 후 커밋해주면 병합이 가능해진다.
- 위의 화면이 나오면
:wq
로 저장해 주면 된다.
git log --graph
를 통해 두개의 브랜치가 성공적으로 병합된걸 확인할 수 있다.
merge
의 병합 단위-> 브랜치