
팀장이 git repository를 만들어 lala와 cos를 콜라보 초대하여 하나의 git으로 관리한다.

맡은 기능 중 의존하지 않는 기능부터 만든다. (cos가 e기능부터 만드는 이유)
각 기능이 각자의 브랜치에서 완료되면, merge를 하여 master 브랜치에 통합해야 한다. 그런데 master브랜치와 자신의 브랜치 형상이 다를 경우 push를 할 수 없다. 이 경우 형상을 맞춰 주어야 push할 수 있다.
아래 예시로 형상이 다르다는 의미와 형상이 다를 경우 어떻게 해야 하는지 알아보자.
netflix파일 - master 브랜치에 a기능완료까지 커밋
netflix_home 생성 후 git bash로 브랜치 받아오기git clone의 원리 : init - remote - pull(git pull origin [브랜치명]) 의 단계

touch

vi [파일명(Tab으로 부르기)]


이런 화면이 뜨는데, 현재 글쓰기 모드가 아니기 때문에 글자가 입력되지 않는다.
영어 i키(insert)를 눌러 글쓰기 상태로 만든다.

내용 적기. (엔터치면서 아래에도 적을 수 있다.)

ESC를 누르면 글쓰기 모드에서 다시 읽기 모드로 변해 글을 입력할 수 없다.

: wq로 저장하고 에디터 빠져나가기. (q는 저장 없이 빠져나가기만 한다.)

cat [파일명(Tab키로 찾기)] : 해당 파일을 출력해서 보여줌

이후 b기능 commit
netflix파일로 다시 돌아가 c기능완료 만들기 (형상을 다르게 만들기)

형상이 달라 push가 되지 않는다.
git pull origin master
pull = fetch(다운로드)+merge
: 먼저 원격 브랜치의 내용을 가져온 뒤(= git fetch), 가져온 원격 브랜치의 내용을 현재 로컬 브랜치로 가져와 병합(= git merge)을 진행한다.

가상의 (fetch) stream 브랜치(다운로드 전용가지, 마스터가지의 속성을 지님) 를 만들어 다른 가지에 merge시킨다.

git pull을 하면 Merge했다는 로그까지 보여준다.

내가 기능을 수정하는 동안 다른 사람이 같은 기능을 수정할 수 있으므로 push를 작업시작 전 한 번, 작업을 다한 뒤 push하기 전 pull한 번 하고 commit해야 한다.
netflix_home 파일에 작업 중인 d기능 세팅 후 push
( [집] d기능 작업 중 ) 으로 로그를 저장해야 하는데 [집]태그를 실수로 붙이지 못했다. d기능 작업 중로그는 [집]에서 작업하고 있는 파일이다.)
netflix 파일에도 다른 작업 중인 d기능 세팅
push하려고 하면 형상이 달라 실패한다.
netflix 파일에 pull 실행
사이사이에 값이 있어 형상이 달라 충돌하야 merge가 되지 않았음을 확인할 수 있다. (1,2,3,444,555,666 이었다면 pull이 되었을 것이다.)

1까지는 형상이 같아서 충돌이 나지 않았으나, 그 이후로는 형상이 달라 충돌한다. 무엇이 옳은 형상인지 git이 판별하지 못하기 때문에, ====== 위아래를 기준으로 둘 중 하나를 선택하여 사용하지 않을 코드를 지우면 된다.

