목록전체 글 (182)
취미가 좋다

git reset 브랜치를 지정한 커밋으로 이동한다. 지정한 커밋은 부모쪽 커밋일수도 자식쪽 커밋일수도 있다. 옵션 - hard : 돌아가려는 커밋 이후의 모든 내용들이 사라진다. - soft : 돌아가려는 커밋으로 돌아가고 이후의 모든 내용들이 stage 상태로 남아있다. (git add 된 상태) 커밋을 다시 할 수 있는 상태 - mixed : 돌아가려는 커밋으로 돌아가고 이후의 모든 내용들이 unstage 상태로 남아있다. (git add 이전 상태) (default) (hard 옵션은 git branch -f main main~1 와 같은 것 같다.) (hard 옵션은 변경사항 다 무시하고 해당 브랜치, 커밋으로 이동시킨다.) git reset main~1 git reset main^ git re..

HEAD 현재 작업중인 커밋을 가리킨다. 커밋을 직접 가리킬 수도 있지만 일반적으로 커밋을 가리키는 브랜치를 가리킨다. HEAD → main → c1 - HEAD 는 * 표시로 표현된다. - 현재 HEAD 는 main 브랜치를 가리킨다. - 현재 main 브랜치는 c1 커밋을 가리킨다. git checkout c1 or git switch c1 HEAD → c1 main → c1 - HEAD 가 브랜치가 아니라 커밋을 직접 가리키도록 분리됐다. HEAD 이동 - HEAD 를 옮기기 위해서는 캐럿(^) 과 틸드(~) 를 사용한다. - 이를 상대 참조 라고 한다. - 커밋의 해시를 직접 작성하기엔 어렵기 때문에 많이 사용한다. - switch 나 checkout 명령어를 사용하면 된다. (둘의 차이는 나중에..

git rebase git merge 와 같이 두 커밋을 합치는 작업이다. git rebase 는 커밋들을 한 줄로 깔끔하게 만들고 커밋의 순서를 만들어준다는 특징이 있다. 아래 예시를 보며 쉽게 이해해보자. - 왼쪽처럼 c2, c3 커밋을 각각 가리키는 bugFix, main 브랜치가 있다고 하자. - 현재 가리키고 있는 브랜치는 bugFix 이다. - git rebase 명령어로 2개를 합쳐보자. git rebase main - main 과 bugFix 는 따로 작업했지만 순서대로 작업한 것처럼 보이게 된다. - 기존에 있던 c3 커밋은 없어지지 않았지만 가리키는 브랜치가 없어서 흐릿해진 상황이다. - 같은 방법으로 main 을 c3' 커밋으로 옮겨보자. git switch main git rebas..

git merge 2개의 커밋을 부모로 갖는 새로운 커밋을 만드는 작업이다. 2개의 커밋을 합친다고 생각해도 된다. - 왼쪽처럼 c2, c3 커밋을 각각 가리키는 bugFix, main 브랜치가 있다고 하자. - 현재 가리키고 있는 브랜치는 main 이다. - git merge 명령어로 2개를 합쳐보자. git merge bugFix - c2, c3 를 부모로 갖는 새로운 커밋 c4 가 생성됐다. - 기존에 가리키고 있던 main 브랜치가 c4 를 가리키게 됐다. - 같은 방법으로 git merge 로 bugFix 도 c4 를 가리키게 해보자. git switch bugFix git merge main - 이를 통해 알 수 있는 것은 어디서 어디로 merge 하든 결국 같은 커밋이 만들어진다는 것이다. ..
깃 (git) 이란 코드의 버전을 관리하기 위한 버전 관리 시스템이다. 쉽게 말해, 우리는 문서를 작성할 때 _1차.ppt / _2차.ppt / _최종.ppt / _최최종.ppt 과 같은 파일들을 만들기도 한다. 중간중간 파일을 저장하는 것처럼 깃은 중간중간 코드를 저장하는 것이라고 볼 수 있다. 커밋 (commit) 이란 위에서 중간중간 저장한 코드(파일)를 말한다. 커밋한다는 것은 새로운 버전의 코드(파일)을 저장하는 것이다. 이 때 저장되는 커밋의 특징으로는 부모가 존재한다. 예를 들어, _2차.ppt 파일의 부모는 _1차.ppt 파일이라고 볼 수 있다. _2차.ppt 를 새로운 커밋이라고 하면 부모(_1차.ppt)로부터 변경된 점만 저장해서 _2차.ppt 커밋을 만든다. 따라서 커밋한다는 것은 부..
JVM : 운영체제의 메모리 영역에 접근하여 메모리를 관리하는 프로그램 메모리 관리, Garbage Collector 수행 Garbage Collector : 동적으로 할당한 메모리 영역 중 사용하지 않는 영역을 탐지하여 해제하는 기능 Stack : 정적으로 할당한 메모리 영역 원시 타입의 데이터가 값과 함께 할당. Heap 영역에 생성된 Object 타입의 데이터의 참조 값 할당 Heap에 있는 객체의 주소를 갖는다. Heap : 동적으로 할당한 메모리 영역 모든 Object 타입의 데이터가 할당. Heap 영역의 Object를 가리키는 참조 변수가 Stack에 할당 객체가 들어간다. Garbage Collector 과정 1. (Mark) Garbage Collector 가 Stack 의 모든 변수를 ..