Git은 내 프로젝트가 수정될 때마다 버전을 저장해 관리할 수 있게 하는 프로그램입니다.
코드는 add 명령어를 통해 staging area에 들어가, 변경사항이 트래킹됩니다.
트래킹 완료된 파일들은 commit 명령어를 통해 버전이 저장됩니다.
git init
깃 저장소를 초기화하는 명령어입니다.
프로젝트 폴더를 워킹 디렉토리로 바꾸고 코드 파일을 깃으로 관리할 수 있게 됩니다.
git add .
git commit -m "커밋메세지"
이렇게 add와 commit이 가능합니다.
커밋메세지는 이전 버전과 비교해 어떤 부분이 수정되고 추가되었는지를 간략하게 작성하면 됩니다.
git status
git status는 현재 staged되지 않은(즉 add되지 않은) 파일들,
그리고 staging area에서 커밋되기 전 파일들의 목록을 알려줍니다.
git log
git log는 현재까지의 commit 기록을 나타내줍니다.
git rm [파일이름]
해당 파일을 삭제하고, git에 add까지 해줍니다.
이 명령어 없이 그냥 파일을 삭제한 후, git status입니다.
add가 반영되지 않아 파일이 staged되지 않았습니다.
이번에는 rm 명령어를 사용해 삭제한 후 git status입니다.
add까지 완료되어 staging area에 올라간 모습입니다.
git reset --hard HEAD~1
git reset은 커밋을 되돌린다는 뜻입니다.
--hard는 커밋을 지정한 곳으로 완전히 돌리고, 이전 데이터를 지워버린다는 뜻입니다.
git log에서 보면, 가장 최근 커밋에 HEAD가 있을 것입니다. HEAD는 커밋을 가리키는 포인터 역할을 합니다.
HEAD~1은 즉슨 HEAD로부터 한 커밋 전으로 되돌린다는 뜻이 됩니다.
두 커밋, 세 커밋 전으로 돌리려면 ~2, ~3 등 응용해 사용 가능합니다.
아까 file1.txt와 file2.txt를 지운 후 커밋하고 위 명령어를 입력하면, 다시 두 파일이 생기는 것을 확인할 수 있습니다.
git branch
현재 존재하는 branch들을 확인할 수 있습니다.
git branch -D [브랜치 이름]
해당 브랜치를 삭제할 수 있습니다.
git checkout -- .
git checkout -- [파일 이름]
가장 최근의 커밋 상태로 코드를 되돌립니다. "."를 사용하면 하나 전체를 되돌리고, 파일이름을 쓰면 해당 파일만 되돌립니다.
잘못해서 파일이 수정/삭제되었을 때, 위 명령어로 복구가 가능합니다.
또, 수정 사항을 커밋하지 않고 다른 브랜치로 갈 경우 오류가 발생하는데, 이를 취소하기 위해서도 위의 명령어를 쓸 수 있습니다.
그렇다면 이미 add되어 staging area로 올라간 코드는 어떻게 취소해야 할까요?
1. git reset 명령어를 씁니다.
git reset [파일 이름]
git reset은 staging area의 변경사항을 staging되지 않은 상태로 만듭니다.
2. 이제 아까 배운 checkout -- . 명령어를 씁니다.
git checkout -- .
이제 staging area에 올라온 코드가 없으므로 checkout -- 를 정상적으로 사용 가능해집니다.
'TIL' 카테고리의 다른 글
[html/css] 100일 코딩 챌린지 - flex 박스 (0) | 2023.04.12 |
---|---|
[Git/Github] 100일 코딩 챌린지 - 깃허브란? (0) | 2023.04.12 |
[HTML/CSS] 100일 코딩 챌린지 - 실습(9, 10일차) (0) | 2023.04.07 |
[HTML/CSS] 100일 코딩 챌린지 - html 레이아웃 만들기(8일차) (0) | 2023.04.06 |
[WebSocket]Express 서버에 WS 합치기, 프론트와 데이터 공유하기 (0) | 2022.10.09 |