이고잉님의 깃헙특강
(오전)
- 버전 관리가 반드시 필요함
프로젝트 하다보면 버그가 생김
1. 행복한 버그 : 문법 에러! 해결하지 않으면 프로그램이 돌아가지 않기 때문
2. 눈에 보이지 않는.. 슬픈 버그 : 로직, 기획자의 오판, 소통 미스 등.. 당대에는 발견되지 않았던 버그였을 수 있음
버전 관리를 하지 않았다면, 버그 발생시 전수 검사해야 함
버전 관리를 했다면, 과거로 돌아가 단하나의 버전 안에서 버그를 찾을 수 있음! 문제 해결 능력이 완전히 다름
but 날릴 위험성이 있으니.. 잘 익혀보자.
놓친 부분은 여기서 공부하자
- 폴더 생성 후 끌어오고, 소스 컨트롤에서 저장소 초기화->파일 생성->메시지 적어서 커밋
- 수정 후 무엇을 변경했는지 확인할 수 있음. work2 적고 커밋!
- Git graph사용시 전체 버전을 한눈에 볼 수 있음
- cmd로 해보기. bash를 사용하자
- pwd : 경로 확인
- git을 입력하여 다양한 명령어를 확인하자
- init후 파일 생성!
https://docs.google.com/spreadsheets/d/19YyV5CqNCZDzrkJI6H0FNhkR4AOwh-r0CcwSZBP1hhM/edit#gid=0
손깃ㅎㅎ
project.folder의 구성
repository - 머신이 작업
working directory - 휴먼이 작업
add : stage area 사용시 파일을 분할해서 저장할 수 있음.
커밋시 깃은 stage area만 지켜봄
(오후)
- 마스터는 마지막 버전을 가리킴
- 각각의 버전 = 그 버전이 만들어진 시점 stage area의 스냅샷
- 돌아가고 싶다면? checkout
$ git log --oneline
c2cf5df (HEAD -> master) work 3
9a03d2a work 2
ed62e77 work 1
$ git checkout ed62e77
$ git log --oneline --all
c2cf5df (master) work 3
9a03d2a work 2
ed62e77 (HEAD) work 1
- 마스터는 마지막 작업을 가리킴
- 헤드는 현재 작업을 가리킴
$ git checkout master
- 다시 돌아가기!
- 왜 checkout c2cf5df(마스터의 커밋ID) 를 하면 안되는가?
head가 master를 가리키지 않고 버전을 직접 가리키게 되어(detached head)
새로운 work가 추가되면 head가 직접 따라가고, 마스터가 머물러있기 때문
but 실험, 신기능 테스트시 효과적임. 개발 후 실패하면! git checkout master로 가면 실패한 것들을 완벽히 버릴 수 있음
- branch 생성하면 커밋 ID의 늪에서 탈출!
- master가 exp를 병합한다. => 실험이 끝났다.
- exp가 master를 병합한다 => master를 업데이트 한다.
<할 일>
1. 프로젝트 폴더를 만든다.
2. 저장소를 만든다. (git init)
3. 파일을 만들고 2개의 커밋을 만든다. work1.txt => 1 work2.txt => 2 work3.txt => 2 git status git add FILE_NAME git commit -m "COMMIT MESSAGE"
4. 시간여행을 해보세요, git checkout COMMIT_ID git checkout master
5. 브랜치를 만들고 작업할 수 있도록 체크아웃하세요. git branch EXP git checkout exp
6. 서로 다른 브랜치에서 작업한다. exp 브랜치 : exp.txt master 브랜치 : master.txt 커밋
7. 병합한다. git merge exp vi editor : :wq를 이용해서 내용을 저장한다.
브랜치 부분을 아직 잘 모르겠어서 내일 한 번 더 봐야할 것 같다
'부스트캠프 AI Tech' 카테고리의 다른 글
RNN, LSTM, GRU (0) | 2022.10.12 |
---|---|
Word Embedding: Word2Vec, GloVe (0) | 2022.10.11 |
Bag-of-Words, NaiveBayes Classifier (0) | 2022.10.11 |
Transformer (0) | 2022.10.09 |
Custom Dataset 및 Custom DataLoader 생성 과제 정리 (0) | 2022.10.02 |
댓글