인프런 강의를 보고 공부한 글입니다.
https://www.inflearn.com/course/%EC%A0%9C%EB%8C%80%EB%A1%9C-%ED%8C%8C%EB%8A%94-%EA%B9%83/dashboard
☑️ 변경사항 저장
git status
☑️ 특정 파일 담기
git add {파일이름}
git add를 입력한 후, 다시 git status를 입력해보자.
Chances to be comitted는 버전에 담을 준비가 되었다는 것이다.
☑️ 모든 파일 담기
git add .
그리고 git status로 확인해보자.
☑️ 저장하기
git commit
이 때 리눅스의 vim을 활용할 줄 알아야 한다.
git commit 명령어 입력 후, vim의 입력모드에 들어 간 다음 FIRST COMMIT!이라고 치고 저장하고 나왔다.
그렇다면 위와 같은 메시지가 출력된다.
git status 를 입력하면, add 했던 파일들이 모두 저장소에 올라갔으므로, 아래와 같이 빈 상태일 것이다.
사실 리눅스 vim 필요 없이 commit 명령어 사용 시 커밋 메시지를 한번에 지정할 수도 있다.
git commit -m "FIRST COMMIT"
☑️ commit한 것을 확인해보기
git log
commit했던 기록 (로그)를 확인할 수 있다!
또한 SourceTree에서도 commit 기록을 확인할 수 있다.
☑️ 파일 상태 변경 후
git status로 확인해보니, 삭제, 변경, 추가된 사실을 알려준다.
git status보다 더 자세하게 변경점을 알려주는 명령어가 있다.
git diff
그럼 이제 변경한 후, add와 commit을 해보자.
이를 git log로 확인해보자!
두가지 버전이 log에 찍혀있는 것을 알 수 있다.
역시 SourceTree에서도 확인할 수 있다.
🔎 add와 commit을 한번에 하기
git commit -am "메시지"
단, 새로추가된 파일(Untracked file)이 없을 때만 사용 가능하다!!
☑️ Reset
☑️ Revert
이번 챕터 학습 전, 프로젝트 폴더의 .git 폴더를 복사붙여넣기를 통해 백업해놓자 미리!
우선, 이전 커밋 내역을 확인해보자
git log
☑️ Reset 해보기
git reset --hard (돌아갈 커밋 해시)
여기서 돌아갈 커밋 해시란, git log를 통해 확인할 때, commit 이라고 적힌 것 옆의 암호
프로젝트 폴더의 .git 폴더를 삭제하고, 미리 백업해둔 .git 폴더를 복사 붙여넣기로 프로젝트 폴더에 넣어보자.
그 후, SourceTree를 확인해보자.
그리고 git status를 입력해보자.
git이 착각하는 것!
이 때, reset 하기 전 상태로 복원해보자
git reset --hard
reset하기 전 시점으로 복원이 되었다!
☑️ revert 해보기
git revert (되돌릴 커밋 해시)
이 상태 (vim)로 들어오는데, 이미 돌리고 싶을 때 상태의 커밋 메시지가 입력되어 있다.
따라서 특별히 더 적을게 없다면 그냥 저장하면 된다.
SourceTree를 확인하면,
굵은 글씨로 Revert "Add George to Tigers"라고 적힌 커밋이 새로 생긴 것을 알 수 있는데, 이것은 Add George to Tigers의 반대 행동이다. (George 삭제)
다른 커밋과는 상관 없이 그냥 중간 변경하고 싶은 커밋만 가져온다는 뜻이다.
이 상태에서, Replace Lions with Reopards로 revert를 활용하여 커밋을 되돌리고 싶다.
근데 이후에 leopards.yaml을 수정한 다른 commit이 있기에, 그 커밋과 충돌이 발생한다.
따라서, leopards.yaml 파일을 삭제해야 한다.
git rm leopards.yaml
☑️ revert는 하는데, commit은 하지 않은 상태로 만드는 방법
git revert --no-commit (되돌릴 커밋 해시)
☑️ SourceTree로 add 하기
☑️ SourceTree로 커밋 하기
☑️ SourceTree로 Revert 하기
☑️ SourceTree로 Reset 하기