git을 쓴다는 건 어떤 의미인가?
- 내컴퓨터에 있는 파일을 git저장소에 백업할 수 있다.
- git 저장소에 백업한 파일을 어디서든 다운로드 할 수 있다.
- 파일의 변경사항을 계속해서 추적해서 비교하고 백업 시에 적절하게 통합 해준다.
- 하나의 프로젝트를 여러개의 버전으로 나눠서 관리하고 버전의 진행을 기록한다.
- 특정 브랜치의 특정 버전과 손쉽게 통합하게 해준다.
working tree -> staging area -> commit -> remote repository
git init : 이 디렉토리를 git 디렉토리로 설정하고 하위 파일들을 관리하겠다.(폴더지정)
git add. : staging area는 이 하위 디렉토리 내 파일들 가운데 어떤 것을 선택하여 area에 올린다.
git status : staging area에 올라온 파일을 확인한다.
git commit -m ’커밋메세지’ : 이제야 비로소 로컬 저장소에 해당 파일들의 상태를 저장한 버전을 생성한다. 혹은 해당 파일들의 바뀐 상태를 저장한 버전을 생성한다.
git remote add <github_url> : 원격저장소와 로컬저장소를 연결한다.
git push <repo_name> <repo_branch> : 연결한 원격저장소에 내 로컬저장소에서 커밋한 버전들을 동기화 시킨다. 혹은 업데이트 시킨다. 뒤의 설정은 생략가능하다.
git pull : 원격저장소와 로컬저장소의 내용이 다르다면(버전충돌), 원격저장소에 먼저 원격+로컬 통합버전을 생성하고, 이를 가져와서 로컬저장소에도 통합버전을 생성한다.
git clone : 원격저장소에 있는 내용을 복제하여 내 로컬저장소로 가져온다. 로컬저장소가 없을 때 원격저장소를 통채로 가져와서 쓸 때 사용한다.
git fetch : 원격저장소와 로컬저장소의 내용이 다르다면, 원격저장소에 먼저 원격+로컬 통합버전을 생성한다. 반면 이를 가져와서 로컬저장소에 리모트 브랜치에 저장하기만 한다.(버전생성x)
git branch <branch_name>: 현재 HEAD가 위치한 브랜치에서 분기한 새로운 브랜치를 생성한다.
git checkout : 브랜치나 버전이름을 쓰면 HEAD의 위치를 다른 브랜치로 옮기거나 동일 브랜치 내 다른 버전으로 이동시킨다. ( 1 - 2 - 3 )
git reset : 브랜치나 버전이름을 쓰면 해당 브런치나 버전으로 회귀하고, 최신 버전들은 삭제된다. ( 1 - 2 - 3 )
git revert 현재버전 : 브랜치나 버전이름을 쓰면 바로 직전버전의 내용으로 새 버전을 생성한다. ( 1 - 2 - 3 - 2)
git log : 로컬저장소의 커밋 히스토리를 보여준다(버전 히스토리)
git log —all —graph —oneline : 브랜치를 포함한 커밋히스토리를 그래프로 보여준다.