🔐 0. git merge?

merge는 사전적 의미에서 알 수 있듯이 git에서도 병합의 뜻을 가진다.

앞서 살펴본 뿌리가 되는 커밋들을 base라고 부르는데 이 뿌리에서 파생된 branch들의 버전을 관리하기도 하고 master의 버전을 이어나가기도 하는데 이때, branch의 기능을 master에서 사용하게 하고 싶다면 바로 그때 사용하는 기능이 merge이다.

merge를 사용하게 되면 base에서 뻗어나간 branch와 master가 병합하게 되는데 뿌리가 같더라도 서로 다른 branch이기 때문에 많은 차이점이 존재한다.

이를 한번에 병합 해주는게 merge이며, 만약 git상에서 해결하지 못하는 문제 즉, 충돌이 발생하면 이를 수동적으로 해결할 수 있도록 멋진 기능을 제공해준다.
++나머지 병합은 git상에서 알아서 처리해줌


🔐 0. git merge!

우선 머지를 직접 실습해보기 위해 앞서 작성한 branch디렉토리에서 다른 디렉토리로 이동한다.

  • \git\manaul-merge 디렉토리를 새로 만들고 git init을 실행(git init manaul-merge로 실행하면 새로운 디렉토리가 생성되면서 초기화 진행)

  • 해당 디렉토리에 앞서 했던것 처럼 work.txt파일로 새로운 버전 생성

  • 다음은 새로운 branch를 만들고 현재 master에서 새로운 버전을 만들어 놓고 branch로 checkout한다.

git-merge_1

사진에서 볼 수 있듯이 뿌리로 가지고 있는 work 1버전에서 두가지 가지로 갈라진다.

원래의 최신 버전을 가지는 master버전과 o2버전 각각 master work 2, o2 work 2 버전을 가짐

  • 여기서 이제 o2 branch를 master branch로 병합을 하고 싶을 때 일단 master branch의 상태가 되어야 한다.
  • git merge o2를 입력하면 master에 o2 branch를 병합하면서 생긴 merge커밋의 메세지를 작성할 수 있다.
  • 커밋 메세지를 작성하고 log로 확인

git-merge_1

위 사진같이 master work2버전과 o2 work 2버전의 병합된 버전이 만들어지게 된다.

merge을 취소하고 싶다면 git reset을 통헤 돌아가면 된다. ex) git reset ‘돌아갈 버전’

📕실습

  1. git init ‘디렉토리’로 새로운 디렉토리에 git초기화
  2. work.txt파일 nano로 생성한 뒤 git add work.txt / git commit -m “메세지”로 버전등록
  3. git branch ‘o2’새로운 branch생성한 뒤 새로운 txt파일 생성하여 커밋
  4. 여기서 git checkout으로 o2브랜치로 전환
  5. o2.txt파일 생성후 버전 등록
  6. git checkout master로 버전 전환
  7. git merge o2입력 후 nano에디터에서 merge커밋명 입력
  8. git log –all –graph –oneline을 입력하여 눈으로 확인
  9. ++ 실습을 더 해보고 싶다면 git reset이용


✍️ GIT & 터미널 & 리눅스 용어 정리

  1. git init ‘디렉토리 이름’: 원래 git init만 사용하면 현재 디렉토리에 git을 초기화하여 사용하겠다는 의미였는데 뒤에 디렉토리이름을 붙이면 해당 디렉토리를 초기화 한다 대신 없는 디렉토리일 경우 하위디렉토리로 생성
  2. git commit –amend: 이미 만들어진 커밋(버전)의 메세지를 수정할 수 있다.
  3. git merge ‘병합하고 싶은 branch’: 해당 버전과 병합하게 된다. 여기서 현재 branch는 master이어야 함

https://opentutorials.org/course/3837 많은 도움을 받은 생활코딩입니다.

공부 정리내용은 생활코딩 및 구글링을 통한 내용을 정리하였습니다.

태그: ,

카테고리:

업데이트:

댓글남기기