코드를 짜든 디자인을 하든 레포트를 쓰든
파일 변경내역을 보존하고 관리하는 과정이 필요하다.
그러고 싶을 때 프로그래머들은 git을 사용한다.
이걸 쓰면 위 사진처럼 파일 복사본을 귀찮게 만들지 않고도 깔끔하게 버전관리가 가능하다.
사용법은 git을 다운로드 받고 터미널을 오픈한다.
거기서 git --version 이라고 입력해 버전이 아무거나 뜨면 git 설치성공
안뜨면 컴퓨터 재부팅을 해보자
git config --global user.email "홍길동@naver.com"
git config --global user.name "홍길동"
> 누가 지금 git을 쓰고있는지 구분하기 위한 간단한 아이디 등록같은 것
한 컴퓨터에 한번만 설정하면 끝
이제 터미널에서 위와 같은 코드를 입력한다.
그러면 Git 최초 설정은 끝, 컴퓨터가 박살나거나 바꾸는거 아니면 안해도 됨
git init
> 새로운 Git 저장소(repository)를 생성할 때 사용하는 Git 명령어
그러고 프로젝트 디렉토리 터미널에 git init
을 하면
해당 디렉토리를 Git으로 관리하겠다는 것을 선언한 것이다.
👀새로운 프로젝트를 시작할 때 한 번씩 해줘야하는 거임. 안하면 개발자 인생 망함.
Git 명령어 중 git commit 을 쓰면 파일의 현재상태를 매일매일 기록 해둘 수 있다.
정확히 말하면 파일의 스냅샷을 저장해주는 것.
그럼 원할 때 쉽게 되돌아가거나 그럴 수 있다.
git add 파일명
git commit -m '메모할 것'
위와 같은 코드를 차례로 터미널에 입력하면 된다.
이러면 방금 파일의 내용을 몰래 어딘가에 기록해준다.
"기록"이라기보다는 "버전생성" 이라고 부르는 경우가 더 많다.
이럼 뭐가 좋음?
이제 한참 뒤에도 이 파일상태 그대로 되돌리거나 그럴 수 있고
나중에 파일변경 히스토리가 궁금하면 열람할 수도 있다.
여러 파일을 동시에 스테이징할 땐 git add 파일명1 파일명2
작업폴더의 모든 파일을 전부 스테이징할 땐 git add .
git status
변경된 파일, 스테이징 된 파일을 확인 할 때 사용한다.
지금 뭐 하는지 까먹었을 때도 자주 사용하게 된다.
git restore --staged 파일명
스테이징된 파일을 취소하고 싶을 때 사용한다.
git log --all --oneline
git log --all --oneline --graph
commit 기록을 한 눈에 파악하고 싶을 때, --graph 옵션을 넣으면 그래프로 그려준다.
commit 하기 전에 이전과 현재 코드가 어떤 차이가 있는지 알고 싶으면
git diff
명령어를 쓰면 된다.
그럼 현재 파일이 최근 commit과 어떤 부분이 달라졌는지 알려준다.
다른 유용한 diff 명령어를 알아보자.
git diff 커밋id
최근 commit과 비교하는게 아니라 과거의 특정 commit과 현재 파일을 비교하고 싶으면 커밋ID를 명시해주면 된다. 커밋id는 git log
명령어를 통해 알 수 있다.
git diff 커밋id1 커밋id2
과거의 특정 commit 2개 간의 차이점 비교도 가능하다.
git difftool
git difftool 커밋id
git difftool 커밋id1 커밋id2
diff
와 같은 기능을 가졌지만 비주얼적으로 훌륭하게 차이점을 분석해 준다.
버전만들 땐 git add, git commit 차례로 하면 된다고 했다.
그림으로 그리자면 이런 식인데
여기서 가운데 부분을 staging area,
파일버전이 저장되는 곳을 repository (저장소) 라고 한다.
commit을 하기 전에 commit할 파일들을 골라놓는 곳이다.
그리고 staging area에 파일넣는 행위를 staging이라고 한다.
git add 명령어로 staging 할 수 있다.
commit된 파일의 버전들을 모아놓는 곳이다.
repository의 실체를 구경하고 싶으면 작업폴더안에 숨겨져 있는 .git 폴더 열어보면 된다.
아무튼 staging area & repository 2개는 자주 쓰는 용어니까 잘 외워두자.