reference : 선행,후행 수업을 알 수 있는 사이트
git 과 vs code 를 준비하자.
GOAL
- 1회차: github 활용 방법 ( 개인 ) + 협업에 대한 그림
- init, add, commit
- HEAD 옮기기 : git checkout
- 돌아오기 : git checkout master
- 버전 취소 ( master 이동 ) : git reset --hard
- 버전 복구 ( 작업 내역 조회 ) : git reflog
- 브랜치 만들기 : git branch exp
버전 관리 백업 협업
- 버전 관리를 탄탄히 하면 백업과 협업이 쉬워진다.
버전 관리를 하지 않는다면, 코드 전체를 전수 조사해야한다.
버전 관리를 한다면, 롤백을 해가면서 버그가 없는 버전까지 찾아갈 수 있다.
GUI 로 git 을 controll 할 수 있다.
ctrl + , 설정화면에서 git 폴더 조회 여부를 설정할 수 있다.
사용자 정보 설정
git config --global user.name "사용자이름"
git config --global user.email "사용자이메일"
기본 프로필 선택
에서 git bash 선택
pwd
로 내 경로 확인
git init
git status
손깃으로 깃의 동작을 이해해보자.
stage area
로 넘어간다. stage area
의 파일이 repository 로 전달된다. git add work1.txt ( 선택적 커밋 )
git commit -m "message"
커밋 식별자 commit id 는 어떻게 만들어질까?
SHA1 hash algorithm 으로 commit id 를 생성한다. ( 고유한 40글자의 id )
- commit 내용, commit file, user email, commit 시간 등을 포함해 SHA1 hash algorithm 수행
commit id 가 같으면 같은 commit 임을 보증할 수 있다.
git add work2.txt
참고
master 는 마지막 version 을 가리킨다.
git log || git log --oneline : 상태 확인
참고
git config --global init.defaultBranch main : default branch 변경
각각의 버전은 그 버전이 만들어진 시점에 stage area 의 스냅샷이다.
git log --oneline --all
git checkout master || git checkout e28cf2e
참고
HEAD 가 가리키는 버전이 새로 만드는 버전의 parent 가 된다.
참고
HEAD 가 version 을 직접 가리키고 있으면 HEAD 가 새로운 버전을 직접 가리킨다. ( detached state )
실험 , 신기능 개발을 할 때 detached state 에서 하면 아주 유용하다.
참고
HEAD 가 master 를 가리키면attached state
detached state 에서 작업하다가 코드 되돌리려면 git checkout master
detached state 에서는 불안정해진다.!
참고
git 의 불변성은 안정성을 보장한다.commit id 를 기억하고 있으면 복원할 수 있다 !
.git/logs/HEAD
: hash id 기록
git merge exp
branch 병합 시에는 순서가 중요하다.
- master 가 exp 를 병합한다. : 실험 끝
- master 가 exp 의 내용을 흡수한다.
- HEAD 는 master 를 가리킨다.
- master 와 exp 를 parent 로 가진다.
- exp 가 master 를 병합한다.
- exp 에 master 의 상태를 update 한다.
- 자주 해주자 !!
master 와 exp 를 parent 로 가진다.
practice
- project folder 를 만든다.
- git init
- file 생성 : work1.txt, work2.txt, work3.txt
- commit 분할
- git add work1.txt
- git commit -m "work 1"
- git add work2.txt work3.txt
- git commit -m "work 2"
참고
add 취소 : git rm --cached work2.tx
- git log --oneline
- 돌아가고자 하는 commit 의 id 획득
- git checkout "commit_id"
- git checkout master
- HEAD 가 master 를 가리키게 된다.
- git branch "branchname" : branch 생성하기
- git checkout exp : master exp - branch 이동
- or
git checkout -b newbranch
- exp branch 와 master branch 에서 각각 exp.txt 와 master.txt 만들고 commit
- git merge exp : branch merge
- vi editor : :wq를 이용해서 내용을 저장한다.
이 글은 커넥트 재단 Naver AI Boost Camp 교육자료를 참고했습니다.
큰 도움이 됐습니다!