✨ 이 글은 [ 코드프레소 Java 웹 개발 체험단 활동 ] 내용입니다 ✨
💜 코드프레소 이러닝 강의 수강 중 - 실무자가 알려주는 Git 입문 💜
😎 아래의 링크를 통해 프리미엄 IT 교육 서비스, 코드프레소를 확인해보세요 😎
이전 실습에서 TestService.java 파일의 코드를 수정하고 $git status 를 통해 파일 상태까지 확인하였다
이제 수정한 파일을 다시 스테이징 영역에 추가하고 커밋을 생성해보자!!
파일 추가 수정 플로우
- 코드 수정
- 수정이 완료되면 스테이징 영역에 추가 -> $ git add
- 의미있는 변경이면 커밋 생성 -> $ git commit
- 이번엔 인라인 커밋 메세지로 커밋을 추가해보자
$ git commit -m "Commit 2 for TestService"
- 그럼 아래와 같이 커밋이 추가된다
그리고 커밋 히스토리를 확인해보면 아래와 같이 추가된 커밋을 확인할 수 있다 -> $ git log
[ 여기서 꿀팁!✨ ]
Git 명령어 뒤에 --help 옵션을 입력하면, 웹 브라우저를 통해 해당 명령어의 매뉴얼 페이지가 실행된다
예시로 아래의 명령어를 입력해보자!
$ git log --help
그러면 아래와 같이 웹 브라우저에 자동으로 연결되면서 명령어 매뉴얼 페이지가 보인다!
커밋 히스토리 관련 옵션
이제 $ git log 명령어의 옵션들을 살펴보자
1. -u
$ git log -u
해당 커밋의 내용과 함께 변경점을 보여준다
2. -u 'commit ID'
$ git log -u 'commit ID'
입력한 커밋 아이디에 해당하는 특정 커밋에 대한 변경점만 보여준다
여기서 commit ID에는 커밋의 특정 아이디(SHA-1로 만든 이상하고 긴거)를 입력하면 된다
3. - '숫자'
$ git log -'숫자'
$ git log -1
$ git log -2
옵션으로 숫자를 입력하면 최근 커밋을 기준으로 최대 몇 개까지의 최신 커밋을 보여줄지 선택할 수 있다
만약 -1 을 입력하면 최신 커밋 1개, -2를 입력하면 최신 커밋 2개를 보여준다
4. --name-only
$ git log --name-only
커밋 히스토리를 볼때 변경된 파일 목록(이름)까지 보여준다
--name-only 옵션을 사용하면 위처럼 커밋마다 수정된 파일들의 목록을 이름으로 보여준다
5. --oneline
$ git log --oneline
커밋을 간결하게 한줄로만 보여준다
커밋이 많을 때 빠르고 간결하게 보기 위해 사용한다
어때유 간결하게 보이쥬?
6. git show 'commit ID'
$ git show 'commit ID'
$ git log -u 'commit ID'와 같은 결과를 보여준다
커밋 되돌리기
커밋을 되돌리는 경우는 2가지가 있다
- 이미 커밋을 만들었는데, 커밋의 메세지를 변경하고 싶을 때
- 이미 커밋을 만들었는데, 커밋에 추가할 변경점이 있을 때
1. 커밋에 수정할 변경점이 있을 때
먼저 커밋의 메세지를 변경해보자
$ git commit --amend
마지막 반영한 최신 커밋 메시지를 변경하고 싶을 때 위의 명령어를 통해 수정이 가능하다
그럼 아래와 같이 최신 커밋을 수정할 수 있는 vim 에디터가 실행된다
여기서 주의할 점은 $ git commit --amend 를 사용하면 마지막 반영한 최신 커밋 메시지를 수정하며, 되돌린 것은 복구할 수 없다!
따라서 실습에서 "Commit 2 for TestService"를 "Commit 2-2 for TestService"로 수정했는데 이는 첫번째 커밋으로는 복구할 수 없다는 것이다!
2. 커밋에 추가할 변경점이 있을 때
- 파일을 수정한 후, 스테이징 영역에 추가한다
- $ git commit --amend 명령어로 커밋을 생성한다
실습을 위해서 AmendService.java 파일을 생성하고 커밋에 추가해보았다!
$ vi AmendService.java
$ git add AmendService.java
$ git commit --amend
아래는 결과화면!
스테이징 영역에 파일 추가 후 --amend를 하고 히스토리를 확인하면 추가된 것을 확인할 수 있다!
지금까지 실습을 통해 배운 커밋 되돌리기 방법은 다음과 같다
- 기존의 커밋을 변경해서 새로운 커밋으로 덮어쓰는 방식이다
- 이는 한번 덮어쓰면 기존 커밋을 되돌릴 수 없다는 단점이 있다
그래서 이번엔 다른 방법을 배워보자!
- 커밋의 히스토리를 유지하면서 내용을 롤백 시키는 방법
- (롤백 : 반영하기 전 상태로 되돌리는 것)
- 즉, 커밋 변경 시 덮어쓰는게 아니라 롤백이 반영된 새로운 커밋을 만드는 방법
- 이미 커밋을 만들었는데, 커밋 히스토리를 유지하면서 내용만 롤백하는 경우 사용된다
- 이는 히스토리 관리가 매우 중요한 실무에서 주로 사용됨
코드의 원복
Git에서 코드를 원복하려면 다음 명령어를 사용한다
$ git revert
이 때 "코드를 원복한다"는 것은?
= 반영한 특정 코드(변경점)를 제거한다
= 변경을 취소한다
= 반영한 커밋을 되돌린다
= 반영한 커밋을 revert 시킨다
...와 같은 말이다~~~
Git에서는 원복의 단위가 커밋이다
따라서 원하는 커밋으로 돌아가려면 다음과 같이 하면 된다
$ git revert 'commit ID'
위의 명령어를 입력하면 아래와 같이 revert 할 수 있는 편집창이 나타난다
이 때 revert 커밋은 자동으로 생성되며, 수정하고 싶으면 수정하고 저장하면 된다!
위의 화면을 보면 이전 커밋과 같이 새로 추가된 AmendService.java 파일은 삭제되고, TestService.java 파일은 수정된다고 나와있다
따라서 revert한 후 확인을 해보면 위의 메세지처럼 이전 커밋 상태와 동일하게 돌아간 것을 확인할 수 있다
정리해보면 코드의 원복은 아래와 같이 이뤄진다
위처럼 revert를 통해 다시 롤백한 상황이다!
'코드프레소 체험단 > 실무자가 알려주는 Git' 카테고리의 다른 글
[실무자가 알려주는 Git 활용한 프로젝트 관리] Git 브랜치 활용 (0) | 2022.01.16 |
---|---|
[실무자가 알려주는 Git 활용한 프로젝트 관리] Git 브랜치의 이해 (0) | 2022.01.16 |
[실무자가 알려주는 Git 입문] Git 기본 플로우 이해 (4) (0) | 2022.01.12 |
[실무자가 알려주는 Git 입문] Git 기본 플로우 이해 (2) (0) | 2022.01.11 |
[실무자가 알려주는 Git 입문] Git 기본 플로우 이해 (1) (0) | 2022.01.11 |
댓글