▶변경사항 확인 후 커밋하기
작업을 하다보면 당연히 변경사항이 생길것이다.
나는 이렇게 아스날의 라이벌팀에 첼시를 추가해보았다.
그리고 git status로 확인해보면
이렇게 modified 된 아스날파일을 볼 수 있다. 여기서 잠깐 modified는 뭘까?
▷tracked, untracked, unmodified, modified, staged 상태
Tracked File은 Git에서 관리를 해주는 파일이다.
Tracked File은 3가지 상태로 나뉘는데
1. unmodified 상태 : 파일이 변경사항 없이 최근에 저장한 그대로의 상태일 때, 수정되지 않은 파일
2. modified 상태 : 파일이 변경된 상태일 때, 수정된 파일
3. staged 상태 : 파일을 저장 할 예정인 상태
Untracked File은 현재 Git이 관리하고 있지 않은 파일이다. 전혀 신경쓰고 있지 않은 상태이다.
▷git diff로 변경사항 보기
git diff
명령어를 통해 어떤것이 변했는지 볼 수 있다.
이렇게 Rival Team에 첼시가 추가된걸 알려준다.
이걸 GUI 환경에서 보면
이렇게 커밋하지 않은 변경사항이 있고, 스테이지에 올라가지 않은 파일에 Arsenal.yaml 이 있고 변경사항까지 알려준다.
▷스테이징과 커밋을 한꺼번에 처리하기
git commit -am "커밋할 이름"
이 명령어는 스테이지로 넘기는것과 커밋을 한꺼번에 처리해준다, 단 한번이라도 커밋한 적이 있는 파일을 다시 커밋할 때만 사용가능!! 아예 새로운 파일은 불가능
이렇게 커밋이 완료된다.
그 후 git log를 써보면
이렇게 두개의 커밋이 생긴걸 알 수 있다.
이걸 또 GUI환경에서 보면
이렇게 커밋이 완료된걸 볼 수 있다.
+CLI환경에서도 아래 명령어를 통해 시각적으로 commit들을 확인 할 수 있다.
git log --all --decorate --oneline --graph
▶작업 되돌리기
추가한게 맘에 안들어서 작업을 되돌리고싶다. 당연히 가능하다.
되돌리는 방법에는 크게 두가지가 있다. Reset과 Revert 이다.
▷Reset
Reset은 위 그림처럼 Second버전으로 돌아가기위해서 Third라는 버전을 없애는것이다. 한번 Reset된 버전은 다시 복구할 수 없다.
따라서 협업 시 한번 공유된 커밋들은 Reset을 사용하면 안된다.
git reset --hard (돌아갈 커밋 해시)
위 명령어는 Reset을 사용하는 방법이다. 돌아가고 싶은 커밋의 해시를 적어주면 된다.
git log를 통해 커밋들의 해시를 알 수 있다. commit 옆에 있는 긴 숫자랑 영어 섞인게 해시이다.
우리는 First Commit으로 돌아갈거니까 위처럼 입력하면 First Commit으로 돌아간걸 알 수 있다.
Reset을 이용하였기 때문에 add Arsenal RivalTeam과 First Commit 사이의 버전들은 전부 삭제되고 First Commit으로 돌아가게된다.
GUI에서 보면 add Arsenal RivalTeam 버전은 사라지고 First Commit으로 돌아온걸 알 수 있다.
VS코드에서 Arsenal.yaml 파일을 보면 라이벌팀에 첼시가 사라진것을 볼 수 있다.
▷Revert
Revert는 버전을 삭제하지 않고 커밋내용을 거꾸로 수행하는 버전을 하나 추가하는것이다.
Revert는 버전이 삭제되지 않기때문에 버전을 하나하나 기록해야하는 상황일 때 사용한다.
또, 특정 커밋 내용만 삭제하고 싶을 때 사용한다. 예를들어 Thrid에서 Second 커밋내용은 냅두고 Firts 커밋내용만 삭제하고 싶을 때 Revert를 사용한다.
git revert (되돌릴 커밋 해시)
revert는 reset과 달리 돌아가고 싶은 커밋이 아니라 없애고싶은 커밋의 해시를 적어주면 된다.
따라서 add Arsenal RivalTeam의 해시를 적어주게되면
이렇게 vim으로 들어가게 된다. 첫번째줄이 Revert할 커밋의 이름이다. 따라서 :wq로 저장 후 나가주면 된다.
그럼 이렇게 Revert가 완료된다.
이걸 GUI로 보면 이렇게 add Arsenal RivalTeam 버전 위에 Revert " add Arsenal RivalTeam " 버전이 생긴걸 알 수 있다.
Revert " add Arsenal RivalTeam " 버전의 내용은 First Commit의 내용과 같다.
이번에는 이렇게 변경사항 확인 후 커밋하는 방법과 버전을 되돌리는 방법에 대해서 알아봤다.
'BackEnd > Git & GitHub' 카테고리의 다른 글
[Git] merge와 rebase 충돌 해결하기 (0) | 2024.02.01 |
---|---|
[Git] branch만들어보기 (Git branch, Git switch, merge, rebase) (1) | 2024.01.28 |
[Git] 깃 저장소 만들기, 버전 만들기 (0) | 2024.01.26 |
[Git] GUI 프로그램 설치 및 사용하기, VS CODE 사용하기 (0) | 2024.01.26 |
[Git] Git이 도대체 뭐길래 다들 쓰는거야? (0) | 2024.01.24 |