Git이란 분산 버전 관리 시스템(VCS, Version Control System)의 한 종류이다.
Git의 작업 폴더는 전체 기록과 각 기록을 추적할 수 있는 정보를 포함하고 있는 저장소이다.
같은 파일을 여러명이 동시에 작업하는 병렬 개발이 가능하며, 팀 프로젝트 뿐만아니라 개인 프로젝트에서도 체계적인 개발이 가능하다. 또한 분산 버전관리이기 때문에 인터넷이 연결되지 않은 곳에서도 개발을 진행할 수 있다.
git init
빈 git(.git) 저장소 만들기(새로운 git 저장소 만들기)
rm -r .git
.git 폴더가 삭제되며 git 로컬 저장소 지정을 해제한다.
git config --global user.name "이름"
사용자명 설정
git config --global user.email "이메일"
이메일 설정
git add -A
파일을 준비영역(staging area)에 놓기, HEAD에 넣기 전 즉, commit전
git commit -m "확정본에 대한 설명"
커밋하기, 가상공간에 파일 저장
git status
파일들의 현재 상태 확인
git log
현재까지 스테이지, 커밋된 정보 보기
git reset 돌아갈 과거 git log 일련번호 6자리 --hard
돌아갈 과거이후의 행적을 복원할 여지없이 지우는 방법, 다시 미래시점으로 못감, 파괴적인 방법
git revert 취소할 시점 git log 일련번호 6자리
reset보다는 소극적인 방법, 취소한 부분도 기록에 다 남는다.
git branch 브랜치이름
작업중이던 폴더 그대로를 새로운 공간에 만들기. 즉, 평행우주 만들기..(?)
git checkout -b 브랜치이름
브랜치를 만들고 그 브랜치로 이동
git branch -D 브랜치이름
브랜치 삭제
git checkout 브랜치이름
선택할 브랜치, git checkout master : master 가지로 이동
git log --graph --all --decorate
git흐름을 그래프로 간략하게 볼 수 있다.
git merge 변화를 가져올 브랜치 이름
다른 브랜치에 있는 파일을 master 브랜치에 병합하고 싶을 때 이용한다.(다른 브랜치에 병합하고싶은 경우 먼저 그 브랜치를 체크아웃하기)
master 체크아웃 후 변화를 가져올 브랜치를 marge하기
만약 각각 다른 브랜치에서 같은 파일 같은 곳을 수정했을 경우 병합할 때 충돌(conflicts)이 일어날 수 있다.
충돌을 해결한 뒤 충돌한 파일을 add해준다.(git add 파일이름)