Git 사용 방법에 대해 알아가면서 팀 프로젝트 시 원활하게 활용할 수 있도록 준비할 생각이다. 직접 입력해 보면서 연습해야겠다!
명령어
-
$ touch abc.txt / 파일 생성
$ cat abc.txt / 파일 내용 확인
ex) hello world !
$ vi abc.txt / a > esc > :wq / 편집법
$ rm abc.txt / 파일 삭제
-
$ mkdir euna / 폴더 생성
$ rmdir euna / (빈) 폴더 삭제
$ rm -rf euna / (비어 있지 않은) 폴더 (강제) 삭제
+
- git init / 로컬 저장소 생성
- git status / 작업 디렉터리 상태 확인
- git add 스테이지에 추가할 대상 / 스테이지에 추가할 대상 스테이지에 올리기
git add . / 모든 변경사항 스테이지에 올리기
- git commit / 자세한 커밋 메세지 + 함께 커밋
git commit --mmessage "커밋 메세지" / 커밋 메세지로써 커밋하기
git commit -m "커밋 메세지" / ..
+
- git log / 커밋 확인
git log --oneline / (간단) 커밋 확인
git log --patch / 개별 커밋 변경사항 확인
git log -p / ..
+ 작업 내용 비교하기
- git diff / 최근 커밋 + 작업 디렉터리 비교
git diff staged / 최근 커밋 + 스테이지 비교
git diff 1커밋 2커밋 / 1커밋 + 2커밋 비교
+
- git branch / 브랜치 목록 조회
git branch 브랜치 / 브랜치 생성
git branch -d 브랜치 / 브랜치 삭제
+
- git checkout 브랜치 / 브랜치 체크아웃
- git checkout -b 브랜치 / 브랜치 생성 + 체크아웃
- git merge 브랜치 / 브랜치 병합
장점
- 변경 내용 확인
- 작업 되돌리기
- 협력 원활
- 버전 (commit) = 유의미한 변화가 결과물로 나온 것
관리 공간
- 작업 디렉터리 (워킹틀) / 버전 관리 대상 위치 공간 (.git)
- 스테이지 (인덱스) / 다음 버전 후보 공간
- 저장소 (레포) / 버전 생성 및 관리 공간
브랜치 = 버전의 분기
장점
- 브랜치 나누기
- 개별 브랜치 작업하기
- (필요 시) 브랜치 합치기 = 병합 (merge) / 같은 코드를 다르게 수정 > 충돌
HEAD
- 현재 작업 브랜치 커밋
- 일반적으로 최신 커밋
- 내거 지금 어디에서 작업 중인가
checkout
- 작업 가능하도록 작업 환경 바꾸는 것
- HEAD의 위치를 특정 브랜치의 최신 커밋으로 이동
충돌 발생 시 대처법
- 반영할 브랜치 직접 선별하기
- 다시 커밋하기