생활코딩 지옥에서 온 Git - 원리 : merge & conflict > Git

Git

분산버전관리 시스템 깃(Git) 강좌 공유

생활코딩 | 지옥에서 온 Git - 원리 : merge & conflict

본문

※ 영상을 선명하게 보기 안내
  1. 유튜브 영상에서 오른쪽하단에 톱니바퀴를 클릭합니다.
  2. 팝업목록에서 "품질" 선택하세요.
  3. 원하는 해상도를 선택해주세요.
※ 모바일에서 Wifi가 아니라면 데이타가 소진될 수 있으니 주의바랍니다.
생활코딩님의 Git강의 청각장애인을 위한 자막
1561016482983.jpg

 



제 이번 시간에는 충돌 영어로는 컨플릭트 라는 상황에 대해서 다뤄 볼
겁니다 우리가 기술 사용하다 보면은
깃은 브랜치를 굉장히 효율적으로 다룰 수 있게 하는 혁신해 가져왔기
때문에 많은 사람들이 개발을 할 때 끊임없이 브랜치를 만들고 병합하고
삭제 아 그리고 이제 반복하면서 개발을 해 나갑니다
그리고 나중에 이제 원격 저장소 라는 것도 배우게 되며 는
그럼 이제 다른 사람이 작업한 것을 또 합치는 작업을 계속하게 되거든요
그러면 오만 가지 형태의 충돌이 발생합니다
그리고 그 충돌을 해결하는 과정에서 정말 많은 좌절을 맛보게 됩니다
그래서 이번 시간에는 바로 그 충돌이라는 것이 어 일어났을 때 기술
내부적으로 어떠한 변화를 겪게 되는가
어떤 메카니즘에 의해서 충돌이라는 상황을 처리 하는가에 대한 얘기를 해볼
거구요
나중에는 이제 충돌을 해결하는 방법 인 쓰리웨이 뭐지 라고 하는 기법 2
어떻게 동작하는 가에 대한 메커니즘 도 같이 한번 살펴볼 겁니다
요거는 상당히 실용적인 측면이 있을 거에요
어떤 충돌이 일어났을 때 당황하지 않고 질서 정연하게 문제를 해결하기
위해서는
실제로 기세 대구 메카니즘을
어느정도 날고 있는 것이 도움이 됩니다
자 같이 한번 해보시죠 자 저는 현재 디렉토리를 초기화를 하고요
그 다음에 여기에다가 파일을 하나 만들겠습니다
f1 전 텍스트 라는 파일을 만들고
어 이번에는 이번에는 함수를 하나 만들어 볼게요
함수의 이름은
범 숀

자 우리 o 코딩 수업 아니니까
여러분들이 이 코드 잘 몰라서 괜찮습니다
자 그리고 여기다가 는 제가
뭐랄까요 커먼 이라고 하겠습니다 컴 어
그리고 전상
예 저 한 적이 코드는 아무 의미가 없어요
그리고 df ex 트 킷 커밋
- m

그럼 우리 첫 번째 검이 지 만들어졌죠 자 그럼 제가 이것을 브랜치를
따서
fan 점 텍스트 라는 파일을 갖고 있는 새로운 프렌치를 만들어보겠습니다
키 브랜치 명령을 써도 되는데
체크 아웃 하면서 - p 하고서 exp 라고 하면
exp 라는 브랜치 를 만들면서 체크업 까지 같이 하니까 편합니다
자 그 다음에 저는 이제 exp 라는 파일의 내용을 바꿀 거에요
exp 라는 브랜치에 있는 f1 점 텍스트의 내용을 바꿔서
여기 있는 커먼 이라고 되어 있는 부분을 뭘로 바꿀 거냐면
expo 바꿀 겁니다 to me is a m
컴을 exp 로 바꿨다는 뜨 색 커밋 메시지를 작성했습니다
자 그 다음에 기 체크아웃 마스터로 한 다음에
마스터에서 저는 f1 점 텍스트의 내용을 똑같이

마스터 로 이렇게 바꿨습니다
그리고 킥 커밋 - am
커먼 을 뭘로 바꿨어요 마스터로 바꿨죠
자 불행이 서서히 올려 오고 있죠 어떤 불행 서로 같은 코드를 수정한
불행입니다
자 그럼 이상태에서 뒤 뭐지
그리고 이 xp 를 하면 어떤 일이 생기나요
컴플리트 가 뜹니다 충돌이 일어나면서
fan 점 텍스트 라는 파일로 인해서 뭐 지가
자동 뭐 지가 실패 됩니다
자동 뭐지 라는 것은 자동으로 파일을 합쳐 주는 것이 자동 병합 입니다
자 그러면 이런 충돌이 일어났을 때 기세 내부에서는 어떤 일이
일어나는가를 한번 같이 보시죠
자기 스토리에서 제가 리로드를 해보니까 이렇게 됐습니다
그리고 여기 보면은 몇 가지 파일이 생겼는데 한번 위에서 부터 볼까요
일단은 인덱스 라는 파일의 내용이 어떻게 되요
숫자가 붙어 있고 그 숫자 뒤에 파일명이 옵니다
보통 지금까지 5기 숫자는 0 이었거든요 예 내가
충돌이 일어났을 때는 숫자가 붙어요 그리고 여기 있는 걸 클릭해보면
자 여기 숫자가 1번인 f1 점 텍스트는
커먼 입니다
즉 마스터와 exp 브랜치가 공통으로 가지고 있었던 f1 점 텍스트의
내용입니다
자 그 다음에 이건 뭐예요
이번은 마스터라고 되어 있는 걸 봤을 때는 뭐 라는 것을 알 수가 있어요
현재 우리가 체크아웃 해서
뭐지 를 하고 있는 그 브랜치 의 f1 점 텍스트의 내용을 가르치고
있습니다
자 그 다음에 3번은 어
병합이 될 대상
그래서 exp 가 이렇게 있는 것이죠
바로 이 세 가지 정보를 통해서 쓰리웨이 뭐지 라고 하는 그 병합이
이루어집니다 그 병합이 굉장히 똑똑하게 이루어 질 수 있도록 하기
위해서는
어 공통 이 되는 파일과
각자의 파일들에 파일 드 3개가 있어서 이 세개를 근거로 해서
자동으로 킷은 병합 작업을 시도합니다

자 그리고 뭐지 헤드 라는 것을 클릭해 보니까 요건은 바로
뭐 지가 될 대성

최신 커밋 아 예 그 거구요
뭐지 모든 서도 삶으로 했어요 이게 뭔지 예 뭐지 이 메세지는
어우 우리가 이제 지금 그 뭐지 를 하는 과정에서 충돌이 일어나 짜 나요
그래서 다음에 커밋을 할 때 자동으로
이런 메시지를 보여 주기 위해서 이렇게 만든 걸 거에요
그리고 우리 그 헤드 요건은 우리가 방금 병합을 했는데 병합 은 위험한
작업이기 때문에 그 위험한 작업 이전으로 돌아가기 위한 파 일이었죠
얘는 뭐죠 얘는 이 충돌이 일어난 그 파일의
대한 내용적 아 코드란 보죠
음 말이냐면

fn 존 텍스트 안에 내용이 이렇다 라는 겁니다
자 그럼 여기에서 그 편집하면서 일단 빠져나가고 그 다음에
여기에서 이제 우리가 병합 작업을 해 볼 건데
우리는 이제 병합 작업을 직접 파일을 수정할 수도 있지만 그게 아니라
병합을 전문적으로 해주는 도구를 사용해 볼 겁니다
예 그리고 제가 사용할 도구는 kdf 쓰리 라고 하는 오픈 소스 고
무료인 도구의 요 자 이걸 하기 위해서 여러분이 프로그램 일단 설치
하셔야 되구요
그리고
어 뒷
키 컴 피구 글러벌 뭐지 툴 이라고 명령 을 입력하시고 kd 푸스 리라고
이렇게 해주시면
뭐지 명령을 실행할 때 kef c3 라는 툴이 뜨는 겁니다 만약에
bond 컴페어 라는 걸 가셨다
그러면 비욘드 컴페어 는 b c 라는 생 그 확장자 않을까요
예 pc 로 실행 시킬 수가 있거든 이렇게 하시면 되구요


이렇게 해서 엔터를 치면 이제 셋팅이 되는거예요
근데 이걸 실제 세팅하는 과정에서는 운영체제 맞아 여러 가지
기 구체적인 세팅 방법들이 다 다르기 때문에 제가 다루기는 어렵습니다
그래서 여러분이 검색이나 이런 걸 통해서 한번 도전해 보시면 좋겠구요
나중에 제가 기회가 되면 수업으로 다룰 수도 있을 것 같습니다 일단은
여러분들은 아 병합을 전문적으로 하는 툴들이 있구나
그리고 이런 투 든 이렇게 쓰는 거구나 라는 걸 구경하는 정도로
어제 수업을 들으시면 되겠구요 좀 지금 당장 필요하신 분들은 방법을
찾으세요

그러면 제가 이렇게 세팅을 한 다음에 깃 뭐지 툴 이라고 하게 되면 지금
충 돌란 파일에 대해서
뭐지 툴을 이용해서 우리가 세팅한 툴이 줘 병 아파도 록 기 세계 명령을
내리면 이렇게 됩니다
이렇게 화면이 뜨구요
이 화면에 보시면 크게 4개로 9분되어 있습니다
왼쪽 얘는 뭐 라고 써있어요
베이스 라고 적혀 있습니다 그리고 오른쪽에 여기에는 로코커리 라고 써
있고요 그 다음에 여기에는
리모트 라고 적혀 있습니다 그리고 밑에는 아우 프 이라고 되어 있습니다
자 이건 무슨 뜻이냐면 우리가 충돌이 난다 라는 것은 어떤 상황을 의미한
야 면
자 이런 상황을 의미합니다


마스터와 exp 가 이 공통의 컴이 3에서
마스터는 어떤 파일을 수정했고
exp 는 또 어떤 파일을 수정한 상황이라는 것이죠 즉 마스터의 수정사항
과 exp 수정 사항이 있고 그리고 이 둘의 공통적인
내용이 있다는 것이죠 그래서 우리가 보통 이런 공통적인 내용을 페이스
라고 부릅니다
여기 베이스 라고 되어 있는 부분의 는 어떻게 되어 있어요
보시는 것처럼 아까 우리가 코딩 햇던 커먼 이라고 하는 내용이 들어 있고
여기에는 로컬 로커 늘 이제 브랜치를 하는 쪽 우리가 체크아웃 되어 있는
곳이 로커 린 데 로커 른
기대하는 것처럼 마스터 이고 그리고 리모트 즉 머징 을 다하는 쪽은
exp 달하는 것을 우리한테 보여줍니다
그러면 기본적으로는 자동으로 병합을 해주지만
자동으로 할 수 없는 것은 컨플릭트 라고 표현하고 컨플릭트 관한 부분을
이렇게 화면에 표시를 해주는 거죠 자 그럼 우리는 의 중에서 여기다가
마우스를 올려놓고
클릭하고 여기서 a 를 누르면
지금 우리 마우스 커서가 껌뻑 꺼리는 부분이 a 를 채택하게 됩니다
볼까요
보시는 것처럼 커먼 이 채택이 됐죠 만약에
b 를 누르면 마스터가 채택이 되고요
c 를 누르면 리모트 예 있는 exp 가 체액이 되는겁니다
그리고 a 이 시를 다 누르면 세계다
채택이 되어서 이렇게 나란히 화면에 표시가 되는 그런 기능을 갖고
있습니다
자 그리고 꼬마 만약 여러분이 직접 수정을 하고 싶다 그러면 일단은 뭘
뭔가 로 바꿔야 돼요
일단 뭘로 바꿔야 해요 왜냐하면 뭐지 컨플릭트 상태에서는 편집이 안
되거든요 그래서 일단은 저는
베이스로 일단 바꾸고 요 그 다음에 여기 있는 이 부분을
마스터 검마 exp 로 이렇게 바꿨습니다
그렇게 해서 마스터와 exp 를 절충한 결과를 여기다가 된거죠
그 다음에 저장 하고
요 버튼을 누르면
어떻게 되냐면
예 자동으로 요기 뭐지 툴이 라는 이 명령 이 종료되면서 뭐 지가 완료가
됩니다
그럼 어떻게 되느냐 자 fan 점 텍스트는 마스터와 exp 를 동시에
갖게 되죠
그리고 인덱스는 인덱스 는 보시는 것처럼 이제 우리가 방금 뭐지 했던
마스터와 exp 를 갖게 되는 상태가 됩니다
예 그리고 이런 내용도 추가가 되었죠
그리고 키티 스테이터스 를 해보면
f1 점 텍스트가 애드 된 상태인 것을 볼 수가 있습니다
그리고 기 5 리그 라고 되어있는 요거는 그냥 나중에 지워버리면 됩니다
저거 뭐 만약의 사태를 대비해서 만들어 놓은 텍스트의 1 볼까요
이렇게 그 병합 자기전에 내용을 갖고 있는 건데 좀 지워 버리세요

f1 점 텍스트 5 리그

듣고 킷 커밋
- m 이라고 하고 엔터를 치면
실수 했네요 - m 한줄이 자네 엔터를 치면 보시는 것처럼 뭐지
브랜치 exp exp 브랜치를
그 병합해 따라 는 메시지가 뜨고
f1 점 텍스트 에서 충돌이 있었다 라는 참고사항을 이렇게 보여주죠
그래서 저자 하고 키트로 글을 보면
보시는 것처럼 이렇게 병합이 끝난 것을 볼 수가 있습니다

댓글 0개

등록된 댓글이 없습니다.

본 사이트의 컨텐츠는 명시적으로 공유기능을 제공하고 있는 공개된 자료를 수집하여 게시하고 있습니다.

저작권, 강의등록, 광고, 제휴등은 "관리자에게 문의"로 메세지 주시면 확인후 답변드립니다.

Menu