
commit의 일부 해시값이 head가 된다. 이동하면서 head값(일부 해시값)이 바뀌고 이 head는 특정 커밋을 참조한다.
브랜치도 동일하게 checkout하면서 head의 일부 해시값이 변경되고 해당 커밋을 참조한다.
기본적인 자료구조 리스트를 확인하자면
1.씨앗 <- 2.사과나무 <- 3.사과
커밋 하나하나가 자료이고 시간의 흐름대로 1, 2, 3 의 순서라면 각각의 자료는 1.씨앗은 2.사과나무를 모르지만 2.사과나무는 1.씨앗을 알고 3.사과를 알면 1.씨앗과 2.사과나무를 모두 알 수 있다.
이것이 일종의 참조를 보여준다.
이러한 참조의 흐름을 생각하며 git 전략을 세울 수 있고 브랜치의 갯수, 개발자 인원 수 등에 따라 효과적인 버전 관리로 이어진다.
git 새로운 레파지토리 생성 할 때, .gitignore 파일을 추가하는 목록이 있다. 이 파일은 깃에서 추적하지 않을 내용, 무시해도 되는 내용, 예전 버전 내용, 공유되면 안되는 내용이 담긴 파일로 git add .또는 commit 할시 해당 파일에 내용이 추가되지 않는다.
pwd #내 현재 위치
ls #현재 디렉토리에 담긴 파일 목록
cd [파일명] #파일로 들어가기
cd.. #뒤로가기
cls #터미널 명령어 지우기 = clear
git branch [브랜치명] #브랜치만들기
git checkout -b [브랜치명] #새브랜치 만든 후 해당 브랜치로 이동
git [reset] --help #해당 명령어의 설명서를 볼 수 있음
설명서에 [ ] 는 옵션, | 는 OR(또는) 의 의미를 갖고있다.
--[patch] 전체를 표기, 전체를 포함하는 의미
--patch = -p 축약형으로도 사용 가능하다.
추가로 에디터에서 오류발생 시 나타나는 창이 떴을 때 당황하지 말고 명령어를 입력해보자!
ESC누르고 :q를 입력하여 에디터 닫기
여기에 !추가하면 강제닫기
명령어 - :w 저장 :q 종료 :wq 저장하고 종료
git cherry-pick [해시값] #잘못된 브랜치에 커밋한걸 가져올 수 있음
git stash #이전상태로 되돌리고 현재작업은 다른디렉토리에 저장
git stash list #목록 확인 가능
git stash push -m '메세지작성' #메세지 작성 가능
git stash pop #다른 디렉토리에 숨겨놨던 작업 가져오기
스텍, 큐, 리스트 3가지는 기본적으로 알아야 하는 개념
merge [브랜치이름]
같은파일을 각각 다른 브랜치에서 동시에 수정한 후, 브랜치 간 머지하고 충돌부분을 수정하여 병합해보았다. 브랜치 [ main, develop ]
PS C:\Users\eaaha\OneDrive\git-prectice2> git merge develop
CONFLICT (add/add): Merge conflict in develop/index.html
Auto-merging develop/index.html
Automatic merge failed; fix conflicts and then commit the result.
PS C:\Users\eaaha\OneDrive\git-prectice2> git commit -m '브랜치머지'
각각의 브랜치에서 파일 수정 이후 main 브랜치에서 git merge develop을 실행하니

다음과 같은 충돌이 일어났고 develop 브랜치의 수정 값을 수락하여 병합완료한 이 후, '브랜치머지' 메세지와 함께 커밋해주었다.

git 연습을 통해 브랜치머지를 성공시킬 수 있었다.