[깃이란?]
소스코드를 관리하기 위한 분산 버전 관리 시스템, 깃의 작업 폴더는 전체 기록과 각 기록을 추적할 수 있는 정보를 포함하고 있으며 네트워크에 접근하거나 중앙 서버에 의존하지 않음.
[설정]
* 전역 사용자명 / 이메일 구성
git config --global user.name "name"
git config --global user.email "email address"
* 저장소별 사용자명 / 이메일 구성 (해당 디렉터리 이동)
git config user.name "name"
git config user.email "email address"
* 전역 설정 정보 조회
git config --global --list
* 저장소별 설정 정보 조회
git config --list
* 출력결과 색상 활성화
git config --global color.ui "auto"
* 저장소 초기화 (해당 빈 디렉터리 이동)
git init
* 저장소 복제하기
git clone <저장소 url>
* 새로운 원격 저장소 추가
git remote add <원격 저장소 이름> <저장소 url>
[기본 사용]
* 파일 스테이지 추가
git add <파일>
* 파일 스테이지 삭제
git reset HEAD <파일>
* 스테이지 파일 커밋
git commit -m "<메시지>"
* 마지막 커밋 고치기
git commit -m "<메시지>" --amend
* 깃 이력 되돌리기
git reset <옵션> <되돌아갈 커밋>
옵션 1 : -- hard ~ 해당 이력 이후의 모든 내용을 지움
옵션 2 : -- soft ~ 해당 이력 이후의 작업 파일, 스테이지도 그대로 있음
옵션 3 : -- mixed ~ 해당 이력 이후의 작업 파일은 그대로 남아 있지만 스테이지는 초기하
* 브랜치 변경
git checkout <브랜치>
[브랜치]
* 지역/원격 브랜치 목록 보기
git branch -a
* 새로운 브랜치 생성
git branch <새로운 브랜치> | git branch -b <새로운 브랜치> ~ 새로운 브래치로 체크아웃
* 브랜치 삭제하기
git branch -d <삭제할 브랜치>
* 커밋하지 않고 합치기
git merge <브랜치>
[깃 이력]
* 변경 사항을 로그 표시
git log -<개수>
[원격 저장소]
* 저장소 복제
git clone <저장소 이름> <저장소 url> | git clone <저장소 url>
* 새로운 원격 저장소 추가
git remote add <원격 저장소 이름> <저장소 url>
* 변경 사항 합치지 않고 지역 브랜치로 변경사항 가져오기
git fetch <원격 저장소> <브랜치>
* 변경 사항을 합치고 지역 브랜치로 변경사항 가져오기
git pull <원격 저장소> <브랜치>
* 지역 브랜치를 동일한 이름의 원격 브랜치로 푸시
git push <원격 저장소> <브랜치>
[깃 플로우]
master 브랜치 : 운영서버로 배포하는 브랜치
develop 브랜치 : 개발서버로 배포하는 브랜치
feature 브랜치 : develop 브랜치로 부터 파생되어 병합됨, 기능 개발을 위한 브랜치로 feature/branch-name 형식을 추천
release 브랜치 : develop 브랜치로 파생되어 master, develop 에 병합됨, 실제 배포를 위한 브랜치로 나중에 이 배포 버전을 찾기 쉽도록 마스터 브랜치에 태그를 만들어 현재 병합되는 커밋을 가리키게 함.
hotfix 브랜치 : master 브랜치로 파생되어 master, develop 에 병합됨, 운영상 해당 master 버전에서 치명적인 버그에 대한 긴급 수정을 위해 활용하는 브랜치