Git에서 여기저기로 옮겨다니기 HEAD 현재 체크아웃된 커밋을 가리킨다. 즉, 현재 작업중인 커밋 시점이다. 브랜치를 체크아웃하면 일반적으로 HEAD는 브랜치의 이름을 가리키고 있지만 git 명령어를 통해 이 HEAD를 변경할 수 있다. 특정 커밋을 체크아웃하면 HEAD가 해당 커밋을 가리키고 있다. (해당 커밋을 특정 브랜치가 카리고 있어도 HEAD와 그 브랜치는 서로 다르다) 1. 처음상태 2-1. 브랜치를 체크아웃 브랜치를 체크아웃 한 후 commit을 하면 HEAD는 브랜치와 같이 움직인다. $git checkout bugFix; $git commit; 2-2. 커밋을 체크아웃 특정 커밋을 체크아웃 한 후 commit을하면 특정 커밋에 브랜치가 있더라도 HEAD와 브랜치는 분리된 상태이므로 HE..
Rebase 두 브랜치를 합치는 또 다른 방법 기본적으로 커밋들을 모아서 복사한 뒤, 다른 곳에 떨궈 놓는 것이다 리베이스를 하면 커밋들의 흐름을 보기 좋게 한 줄로 만들 수 있어서 저장소의 커밋 로그와 이력이 한결 깨끗해진다. git reabase 현재 위치한 브랜치의 작업내역을 branch-name으로 복사한다 현재 bugFix와 main 브랜치가 있고 bugFix위에 위치해 있다. 이제 rebase를 이용해서 두 브랜치를 합치면 실제로는 두 기능을 따로따로 개발했지만, 마치 순서대로 개발한 것처럼 보인다 $git rebase main bugFix의 작업 내역(c3)이 복사되어(c3') main의 바로 위에 떨궈졌다. 이 상태에서 다시 main으로 이동 후 bugFix를 이동하면 이 전 merge에서..
Merge 두 개의 브랜치를 합친다 즉, 두 개의 부모를 가리키는 특별한 커밋을 만들어 낸다 두 개의 부모 한 부모의 모든 작업내역과 나머지 부모의 모든 작업, 또한 그 두 부모의 모든 부모들의 작업내역을 포함하는 것이다. bugFix와 main이란 브랜치가 있고 현재 main브랜치를 가리키고 있다(main옆에 *이 붙어있다) 이제 bugFix와 main을 합쳐보자 $git merge bugFix 두 개의 부모를 갖는 main 브랜치가 생겼다 이 상태에서 bugFix로 이동 후 main 브랜치를 합치면 어떻게 될까? $git checkout bugFix $git merge main 새로운 브랜치가 생길 것 같지만, bugFix가 main의 부모 쪽에 있었기 때문에 간단히 bugFix를 main이 붙어 있..
브랜치 특정 커밋에 대한 참조일 뿐이다 브랜치를 많이 만들어도 메모리나 디스크 공간에 부담이 되지 않기 때문에, 작업을 큰 브랜치로 만들기보다, 작은 단위로 잘게 나누는 것이 좋다 명령어 git branch 의 브랜치를 새로 생성한다 ex) git branch newImage git checkout 이동할 지점(커밋, 브랜치명)으로 현재 작업 상태를 이동한다 ex) git checkout newImage 목표 bugFix라는 새 브랜치를 만들고, 그 브랜치로 이동해 보자 $git branch bugFix $git checkout bugFix ref https://learngitbranching.js.org/?locale=ko
커밋 Git 저장소에 디렉토리에 있는 모든 파일에 대한 스냅샷을 기록하는 것 git은 가능한 한 커밋을 가볍게 유지하고자 하기때문에, 커밋할 때마다 디렉토리 전체를 복사하진 않는다. 각 커밋은 저장소의 이전 버전과 다음 버전의 변경을 저장한다. 따라서 대부분의 커밋이 그 커밋 위의 부모 커밋을 가리킨다. delta 이전 버전과 다음 버전의 변경 내역 resolving deltas 저장소를 복제(clone)하려면 모든 변경분(delta)를 풀어내야 하는데, 이 때문에 명령행 결과로 나오는 문구이다. 목표 git commit 두 번 해보기 $git commit $git commit ref https://learngitbranching.js.org/?locale=ko
- Total
- Today
- Yesterday