(gitHub) 브랜치와 충돌 처리

1 분 소요

💼📝🔑⏰ 📙📓📘📒🎓

💼 Branch

나무에 빗대어 설명해보자면 나무는 같은 뿌리에서 나왔지만 서로 다른 가지로 뻗어나가는 모습을 상상하면 이해하기 쉽다, 이 처럼 브랜치는 base(뿌리)를 둔 상태에서 자신이 테스트나, 다른 사람이 이용할 목적(가지)으로 사용한다.

📝 Branch 실습

  • git log --all --graph --oneline : 로그 확인하는 명령어
    • all 옵션 : 모든 브렌치를 보기,
    • graph 옵션 : 시각화 하기
    • oneline 옵션 : 간략하게 보기
  • git branch [생성할브랜치이름] : 브랜치 생성 명령어
  • git checkout [전환할브랜치이름] : 브랜치 전환 명령어

📝 브랜치 병합(Merge)

base를 바탕으로 2개의 브랜치를 병합하여 새로운 버전으로 만드는 것을 merge commit 이라 한다

🔑1) master <- 브랜치 병합

  • 먼저 master branch 상태가 되어야 한다.
    • git checkout master
  • git merge [브랜치명] : master에 브랜치를 병합하는 명령어. 끝.
  • 다시 돌아가고 싶다면.. git reset --hard 6ab5593: merge 전에 해시코드 입력

💼 충돌(Confilict)

서로 다른 두개 branch를 병합할 때 발생하는 같은 파일 안에서의 소스내용이 상이할 때 발생하는 이벤트이다.

  • 같은 파일의 다른 부분끼리 merge를 하는 경우에는 자동으로 merge가 된다.
  • 문제는 같은 파일의 같은 부분이 수정되어 있는 경우이다.

📝충돌을 해결하는 과정

충돌 됬을 경우 특수문자의 의미

  • <<<<<<< HEAD : ====를 경계로 위쪽은 master에서 작성한 소스이다.
  • ======= : 충돌난 부분의 구분자를 뜻한다
  • >>>>>>> [브랜치이름] : ====를 경계로 아래쪽은 브랜치에서 작성한 소스이다.

충돌된 내용을 전부 필요한 경우

  • 특수문자들을 다 지우고 파일을 저장한다.
  • git add [충돌 난 파일이름]: 충돌 부분을 수정했다고 깃에게 알려준다.
  • git status: add한 부분이 잘 적용되어 있나 확인
  • git commit -m "충돌해결" : 커밋하면 브랜치와 master가 합쳐진 것을 볼 수 있다.

💼 p4Merge

모든 운영체제에 잘 호환 되는 무료 MERGE 툴

  • p4Merge을 구글에 검색하여 다운로드
  • git config --global merge.tool p4mergetool : merge 설정
  • git config --global diff.tool p4merge : diff 설정
  • git config --global mergetool.p4merge.path 'C:\Program Files (x86)\Perforce\p4merge.exe' : merge 설정
  • git config --global difftool.p4merge.path 'C:\Program Files (x86)\Perforce\p4merge.exe' : deff 설정
  • cat ~/.gitconfig: 설정되어 있는지 확인하는 명령어

설정방법 참고

댓글남기기