이 글은 inflearn의 'Git과 GitHub 시작하기'를 수강하고 적는 글입니다.
병합이란?
하나의 브랜치를 현재 브랜치와 합치는 것
- 헤드(HEAD) 브랜치 : 현재 브랜치
- 헤드 브랜치가 master이고 여기서 version2 브랜치를 병합하면 version2의 내용이 master에 반영됨.
병합 순서
- 모두 스테이지에 올리기 -> 커밋 -> 병합 -> 푸쉬
Pull
- 깃허브 서버에 업데이트 된 내용이 내 로컬 PC보다 더 최신 내용으로 업데이트 되어있는 경우 필요
혼자 작업 시 : 여러 개의 컴퓨터를 사용할 때
협업 작업 시 여러명이 push하기 때문- 충돌 날 수 있음( 충돌은 자동병합 실패시 발생 )
- pull = fetch + merge
충돌 해결 방법
- 에디터를 사용하여 수동으로 해결
- 느낌표 파일 우클릭 -> 충돌 해결 -> '저장소 것'을 사용하여 해결
- 느낌표 파일 우클릭 -> 충돌 해결 -> '내 것'을 사용하여 해결
reset 사용해 보기
git reset --hard
옵션으로 커밋 되돌리기 ( sourcetree: 이 커밋까지 현재 브랜치를 초기화)- reset 이후 push는
강제
옵션을 선택해야 함. (push --force
)- 이전 커밋은 사라짐
- 장점 : 쉽다
- 단점 : 커밋이 날아간다.
branch 사용
- 되돌릴 커밋 대상으로 브랜치 생성
- 체크아웃
- 변경 사항 수정 후 커밋
- master에 머지
- 장점 : 쉽다. 기록이 다 남아 있다.
- 단점 : 트리가 지저분해진다.