#1. 수강 과목 : Git 이론
#2. 수강 콘텐츠 : 생활코딩 Git강의 정리
<브랜치와 충돌>
git log --all --graph --oneline
작업한 로그들 한 줄로 보기 좋게 나열 후
git branch apple
apple 이라는 브랜치 만듦
현재는 *master 라는 브랜치에 소속되어 있는 상태.
여기서 브랜치를 추가하다가 만일 새로운 커밋을 한다면?
-> 기존 작업들은 브랜치들과 같이 있고, 새 작업만 마스터 브랜치에 위치한다.
git checkout ~~
으로 브랜치를 왔다 갔다 이동할 수 있는데 아까 작업한 work4는 브랜치 apple로 이동할 경우 안 보인다.(마스터때만 보임)
여기까지 해서 마스터는 4가지의 작업을 가진 것이고 나머지 브랜치들은 3가지의 작업을 갖게 된 것이다.
(파일명이 다를 때)
먼저 마스터로 작업 만든 뒤 새로운 브랜치 만든 다음 거기서도 작업
git merge ~(합치려는 브랜치)
마스터로 이동 후 합치려는 브랜치 적으면 됨.
(브랜치는 다르고 파일명이 같을 때 다른 부분을 수정할 때)
둘 다 바뀐 하나의 파일로 병합 됨.(과정은 위와 동일)
(브랜치는 다르고 파일명이 같고 같은 부분을 수정했을 때 ; 충돌 상황)
자동 병합: work.txt
충돌 (내용): work.txt에 병합 충돌
자동 병합이 실패했습니다. 충돌을 바로잡고 결과물을 커밋하십시오.
# title
content
<<<<<<< HEAD
master
=======(둘 중에 하나만 해주세요.)
o2
>>>>>>> o2
# title
content
헤드와 o2 사이를 수정해준 다음 git add, git commit 만 해주면 알아서 수정 되고 머지 됨.
2way에서는 사람이 다 해줘야하지만 3way에서는 수정값을 따른다고 한다.(어렵다..)