commit을 사용하게 되면 로컬 저장소에서 버전을 관리할 수 있는데
협업을 하기 위해서는 로컬저장소에서만 버전을 관리하면 안된다.
github의 원격 저장소를 사용해야하는데
github에 코드를 업로드 한다 == github에 "push"한다 라고 생각하면 된다.
내컴퓨터에 있는 저장소를 "로컬저장소" 라 부르고
깃허브에 있는 저장소를 "원격저장소" 라 부른다.
아직 push를 해주지 않았기 때문에 원격 저장소에는 변경사항이 없다.
git push를 진행해보도록 하자.
변경사항을 확인 해 볼 수 있다.
git reset
이라는 명령어를 사용해서 되돌릴 수 있다.
수정한 것 까지 통째로 되돌리기
git reset --hard HEAD^
add한 것 까지 되돌리기 (Staging area에 있는 것 되돌리기)
git reset --mixed HEAD^
commit 한 것만 되돌리기
git reset --soft HEAD^
여기서 HEAD 와 ^ 의 의미는 아래와 같다.
HEAD : 현재 작업 중인 브랜치/커밋 중 가장 최근 커밋을 가리킨다.
^ : 하나 이전을 뜻함
-> 가장 최근 커밋으로부터 하나 전으로 되돌려라
git reset --hard HEAD^
-> 가장 최근 커밋으로부터 두 개 전으로 되돌려라
git reset --hard HEAD^^
-> 가장 최근 커밋으로부터 세 개 전으로 되돌려라
git reset --hard HEAD^^^
git reset --hard HEAD^
git reset --mixed HEAD^
작업한 내역은 남고 Staging Area에 올린자료, commit한 자료 다 제거가 된다.
git reset HEAD^ 만 써도 위와 같이 변한다.
git reset --soft HEAD^
작업한내역, Staging Area에 올린자료는 남고, commit한 자료만 제거된다.
git remote add origin [url] : 원격저장소와 로컬저장소를 연결시켜주는 명령어
git branch -M main : github나 gitlab은 기본 브랜치명을 main으로 변경했는데 저장소를 github나 gitlab에서 안만들고 local에서 git init명령어로 생성하고 이를 remote에 푸시하는 경우에 master 라는 브랜치가 기본 브랜치로 설정 되기 때문에 브랜치를 변경해주는 명령어라고 생각하면 된다.
git push -u origin main : 원격저장소에 업로드하는 명령어이다.
!!되돌리기!!
1. 수정한 것 까지 통째로 되돌리기
git reset --hard HEAD^
2. add한 것 까지 되돌리기 (Staging area에 있는 것 되돌리기)
git reset --mixed HEAD^
3. commit 한 것만 되돌리기
git reset --soft HEAD^