해당 내용은 생활코딩에서 공부한 내용을 복습하기 위해 다시 간단하게 정리한 글입니다.
더 자세한 건 생활코딩에서
버전 관리 시작
먼저 git bash를 키고 버전을 생성할 디렉토리로 이동한다.
git bash에 git init . 입력
입력하고 난 후 .git이라는 디렉토리가 생성된다.
.git에 버전이 저장되므로 .git은 지우면 안된다.
버전 생성전에 아래 명령어를 입력해준다.
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
Your Name과 you@example.com은 각자에 맞게 변경해준다.
버전 생성
수정한 파일 전체는 Working tree에 존재하고, 그 중 버전을 생성할 일부(전체)를 Staging Area에 올린다.
git에게 버전을 생성하라고 하면 git은 Staging Area에 있는 파일들로 하나의 버전을 생성하여 repository(.git)에 넣는다.
즉, Working tree는 파일을 수정하는 곳
Staging Area는 그 중 버전을 만들 파일들이 있는 곳
Repository는 만들어진 버전들이 있는 곳이라고 생각하면 된다.
버전을 생성하기 위해 파일을 생성한다.
git add hello1.txt로 파일을 Staging Area로 올린다.
hello1.txt가 Untracked files에서 Chages to be committed으로 변경되었다.
git commit -m "Message 1"으로 Repository에 버전을 생성해준다.
그 후 Working tree에는 아무것도 존재하지 않는다.
버전 이동
버전을 이동할 때는 (삭제 x) git checkout <commit>을 사용한다.
<commit>에는 git log를 치면 나오는 각 commit(노란색) 뒤의 id를 입력하면 된다.
가장 마지막 버전으로 이동하고 싶으면 git checkout master를 입력하면 된다.
버전 삭제
버전을 이동할 때 그 후의 버전은 삭제하고 싶다면
git reset을 사용하면 된다.
git reset에는 여러 모드가 있고, 지금 사용할 모드는 --hard이다.
아예 master가 Message 2 버전으로 변경되었고 그 이후의 버전은 삭제되었다.
버전으로 연결된 링크가 없으면 그 버전(commit)은 삭제되고, 링크가 있으면 삭제되지 않는다.
branch가 가리키는 커밋을 변경할 때는 reset을
head가 가리키는 branch나 commit을 변경할 때는 checkout을 사용한다.
git revert
버전을 삭제하지 않고 이전 버전으로 바꾸고 싶을 때 사용한다.
만약 git revert version4를 하면 version 4에서 추가된 내용들이 삭제된 버전이 생성된다.
따라서 그 이전 버전인 version 3와 동일한 내용을 가진 새로운 버전이 생성된다.
기존의 R4는 삭제되지 않고 Revert R4가 추가되었다.
Revert R4는 R3와 내용이 같다.
revert는 해당 버전에서 추가된 내용을 삭제한 새로운 버전을 추가하는 것이기 때문에
중간의 Message 2로 revert를 하면 충돌이 난다.
그 후 R3와 R4에서 추가된 내용을 어떻게 할지 git이 처리하지 못하고 conflict (충돌)가 일어난다.
따라서 역순으로 revert를 해야한다.
'개발 > git' 카테고리의 다른 글
GIT Cherry-pick & rebase (0) | 2020.07.29 |
---|---|
GIT 협업 (0) | 2020.07.24 |
GIT Backup (0) | 2020.07.22 |
git Branch & Conflict (0) | 2020.07.10 |
git 명령어 (0) | 2020.07.05 |