Spicy Tuna Sushi
본문 바로가기
부스트캠프 AI Tech

22-10-11 깃헙특강

by 말린malin 2022. 10. 11.

이고잉님의 깃헙특강

 

(오전)

- 버전 관리가 반드시 필요함

프로젝트 하다보면 버그가 생김

1. 행복한 버그 : 문법 에러! 해결하지 않으면 프로그램이 돌아가지 않기 때문

2. 눈에 보이지 않는.. 슬픈 버그 : 로직, 기획자의 오판, 소통 미스 등.. 당대에는 발견되지 않았던 버그였을 수 있음

 

버전 관리를 하지 않았다면, 버그 발생시 전수 검사해야 함

버전 관리를 했다면, 과거로 돌아가 단하나의 버전 안에서 버그를 찾을 수 있음! 문제 해결 능력이 완전히 다름

but 날릴 위험성이 있으니.. 잘 익혀보자.

 

https://seomal.com/

 

Seomal - 서말

 

seomal.com

놓친 부분은 여기서 공부하자

 

- 폴더 생성 후 끌어오고, 소스 컨트롤에서 저장소 초기화->파일 생성->메시지 적어서 커밋

- 수정 후 무엇을 변경했는지 확인할 수 있음. 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

댓글