Git 기본 설정
- git config --global user.name "이름"
- git config --global user.email "이메일"
버전 관리의 큰그림
- 깃이 관리하는 세 개의 공간
- 작업 디렉터리
=> 버전 관리의 대상이 위치하는 공간
(.git이 있는 디렉터리)
- 스테이지
=> 깃이 관리하는 가상의 공간
=> 다음 버전이 될 후보가 올라가는 공간
- 저장소
=> 깃이 관리하는 가상의 공간
=> 버전이 만들어지고 관리되는 공간
기존사항
변경사항

버전이 된 후보 선정

버전을 생성

2. 하나의 버전이 만들어지는 과정
작업 디렉터리 내에서 변경 사항 생성 -> 스테이지로 add -> 저장소로 commit
깃 명령어 정리
-
기본 명령어

-
git log 명령어

-
git diff 명령어

작업 되돌리기
- revert


- reset
- 버전을 완전히 되돌리기


1) soft
-
커밋만 되돌리기
-
하나의 버전이 만들어지는 과정
- 작업 디렉터리에서 변경 사항 생성하기
- 스테이지로 추가하기
저장소로 커밋하기 soft reset

2) mixed
-
스테이지까지 되돌리기
-
하나의 버전이 만들어지는 과정
- 작업 디렉터리에서 변경 사항 생성하기
스테이지로 추가하기 mixed reset
저장소로 커밋하기
3) hard
-
작업 디렉터리까지 되돌리기
-
하나의 버전이 만들어지는 과정
작업 디렉터리에서 변경 사항 생성하기 hard reset
스테이지로 추가하기
저장소로 커밋하기

- 명령어

git stash 명령어
- 임시저장


- 명령어
- git stash
-> 임시저장한다
- git stash -m "메세지"
-> 메세지를 남기고 임시저장한다.
-> 관용적으로 많이 사용
- git stash list
-> 임시저장 내용 확인
- git stash apply stash{번호}
-> 임시저장 한 내용 저장
- git stash drop stash{번호}
-> 임시저장 한 내용 삭제
브랜치 관리하기

브랜치는 버전의 분기
- 브랜치를 사용하는 이유 : 브랜치가 없다면?



- 서로의 작업과 전혀 관련 없는 부분, 같은 코드를 다르게 수정한 부분 혼재
- 일일이 수작업으로 합쳐야함
- 때로는 서로의 코드를 합치다 실수가 생길수도
- 브랜치를 사용하는 이유 : 브랜치가 없다면?



- 브랜치로 문제 해결하기

- 브랜치는 버전의 분기
- 브랜치로 버전의 분기를 관리하는 방법
- 브랜치를 나눈다
- 각자의 브랜치에서 작업한다.
- (필요하다면)나눈 브랜치를 합친다
1) 쇼핑몰 예시



=> 이제 같은 부분을 다르게 수정한 부분만 보면 된다.
2) 회사 예시

=> 브랜치는 버전의 분기
- 브랜치의 이름 : 최초의 브랜치, master 브랜치

<가장 기본적인, 최초의 브랜치>
지금까지 만든 커밋들은 모두 기본적으로 master 브랜치에 속해 있다.
1) 예시

- master 브랜치에 커밋이 3개 쌓여있고, foo 브랜치에는 커밋이 5개 쌓여 있다.
2) 예시

- master 브랜치에는 커밋이 3개, foo 브랜치에는 커밋이 5개, bar 브랜치에는 6개 쌓여있다.
3) 브랜치 작명

- 특정 브랜치에서 작업하기 HEAD와 체크아웃
- HEAD
- 현재 작업 중인 브랜치의 커밋을 가리킨다
- 일반적으로 현재 작업 중인 브랜치의 최신 커밋을 가리킨다
- 한 마디로 "내가 지금 어디에서 작업 중인가"를 가리킨다

- 명령어 정리

- 병합
-
병합 전

-
병합 후

1) 빨리감기 병합(fast-forward merge)
- foo 브랜치가 뻗어 나오고, foo 브랜치에 커밋이 쌓이고, 병합이 되는 순간까지 가만히 있었다.
- 그래서 maser 브랜치는 마치 빨리감기 하듯 그저 foo 브랜치에서 추가 된 커밋을 반영하기만 하면 된다.
- 이렇듯 변함이 없던 브랜치가 마치 빨리감기하듯 브랜치 내용이 업데이트 되는 병합 기법을 빨리감기 병합이라고한다.
2) 커밋


충돌해결하기

- 충돌이 발생했을 때 대처법


=> 필요한 내용만 남겨두고 다 삭제