˙GIT
GIT이란 소스 코드 관리를 위한 분산 버전 관리 시스템으로 최초 리눅스 커널 개발에 이용하려고 개발했다. 빠른 수행 속도에 중점을 두고 불변 이론을 바탕으로 설계되었으며, 수많은 GUI를 지원하고, 소스 트리 등 여러 가지의 형태로 다양한 사용자들이 사용하고 있다. GIT의 작업 폴더, 디렉터리 등은 모두 전체 기록과 각각의 개별 기록들을 추적할 수 있는 정보를 포함하며, 완전한 형태의 저장소이다. 네트워크에 접근하거나 중앙 서버에 의존하지도 않는다.
GIT의 소스 반영은 Local에서 반영하는 Commit과 Server에 반영하는 Push가 있다.
˙GIT 명령어
▷ Reset " git reset <옵션><돌아갈 커밋 이력>
Reset은 돌아가려는 커밋으로 레파지토리는 재설정되고, 이후의 이력은 사라지게 된다.
▷ Hard Reset " git reset --hard <옵션><돌아갈 커밋 이력> "
돌아가려는 이력 이후의 모든 내용을 지우고, 초기화되는 현상이 발생한다.
▷ Mixed Reset " git reset --mixed <옵션><돌아갈 커밋 이력> "
이력은 되돌아가지만 변경된 내용에 대하여는 남겨져 있다. 하지만, 인덱스는 초기화된 상태로 커밋을 하려면 다시 변경된 내용을 커밋하여야 한다. 별다른 옵션을 적지 않는다면 해당 옵션으로 실행한다.
▷ Soft Reset " git reset --soft <옵션><돌아갈 커밋 이력> "
돌아가려는 이력으로 돌아가지만, 이후의 이력들이 지워지지 않고, 인덱스도 그대로 남아있다. 바로 다시 커밋을 실행할 수 있는 상태로, 기억은 되돌려졌지만 잔재는 남아있는 상태이다.
▷ Revert " git revert <되돌릴 커밋> "
결과는 가지고 있지만 이력을 다르게 할 수 있다. 이력에 대한 부분이 남아있다는 것은 기억하지만, 그 이력에 대한 내용은 모르는 상태이다.
˙Reset과 Revert 용도
Reset을 하는 것이 Revert를 하는 것보다 이력을 더 단순하게 만들어 주기 때문에 Revert의 장점이 적어보이지만, 이력을 중간에 출력하도록 만드는 커밋이 있고, 해당하는 커밋만 되돌리려고 하는 것이 목적이라면 Reset이 유리하다. 물론, Reset 말고도 Revert로도 해당 커밋의 내용을 되돌릴 수 있디만, 이미 Push가 이루어진 상태에서 Reset을 사용하면, 이전으로 되돌리기 전에는 Push가 불가능하다.
'끄적대기' 카테고리의 다른 글
GIT을 다루는 용어 (0) | 2022.03.24 |
---|---|
GIT을 체계적으로 Git-Flow (0) | 2022.03.24 |
Transaction(트랜잭션) : BEGIN, COMMIT, ROLLBACK (0) | 2022.03.24 |
동시성(Concurrency)과 병렬성(Parallelism) (0) | 2022.03.24 |
Redis Server (0) | 2022.03.24 |