패스트캠퍼스 데브캠프 3~4일차 [Github]

Su Min·2024년 5월 23일
post-thumbnail

Github

이어서..

참조(reference)

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가지는 기본적으로 알아야 하는 개념

  • 스텍 - 긴 컵에 자료(공1)을 push(밀어넣기), 자료(공2) push.
    한쪽이 막힌 긴 컵이라 자료(공1)을 뺄수없음. 즉, 맨 위에있는 자료(공2)만 꺼낼수있음. 여기서 빼내는걸 윗 부분에 "stash"의 pop이라함
  • 큐 - 누워있는 파이프를 생각해보자. 왼쪽에서 1을 밀어넣고 2를 밀어넣고 3을 밀어넣으면 오른쪽에서 1이 먼저 나오고 그 뒤로 차례대로 나옴.
  • 커밋 - 리스트 자료구조 (윗부분 사과 참조 개념)

브랜치 히스토리 종류

  • 리베이스 - A브랜치에 1자 히스토리를 만들기 위해 B 브랜치의 커밋 내역을 A 브랜치에 새로운 커밋으로 만들고 B브랜치의 내역은 삭제되어 1자 히스토리로 생성하는 방법

브랜치 간 머지해보기

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 연습을 통해 브랜치머지를 성공시킬 수 있었다.

profile
성장하는 과정에서 성취감을 통해 희열을 느낍니다⚡️

0개의 댓글