# 09.27 피어세션
###### tags: `peer-session`
## 대회 유의 사항

## 공지 사항

## 해야 할 것
* seed 고정 코드
* validation set 만들기
* LB 점수와 validation 점수 차이 확인(분포 확인 및 val 신뢰성 파악)
## 링크
[Class Room 주소](https://classroom.github.com/g/T5XV9Xvu)
[Text augmentation 관련 자료](https://catsirup.github.io/ai/2020/04/21/nlp_data_argumentation.html)
## GITHUB Rule
1. main은 가장 성능이 좋고 에러없는 모델
2. 모든 개인 작업은 Branch나 로컬 폴더에서 다루고 메인 폴더의 코드를 수정하는 일 없도록 주의
3. commit message는 꼭 영어로 작성해주기(터미널 한글 깨짐)
4. 한 commit엔 하나의 기능 수정만 -> 한 commit에 여러 기능이 존재할경우 문제가 생겼을때 원인을 찾기 힘들어짐 반드시 여러가지 수정을 할 경우 수정별로 따로 commit하기
6. 개인은 push하지 않는다 항상 Pull Request를 날리기
7. 일단 commit이 되었다면 git은 반드시 복구할 수 있음 너무 어려워말고 적극적으로 써보고 삽질해보기 (main 제외)
## 간단한 Pull Request
1. 브랜치 생성 및 코드 작업
```git
git branch <branch이름>
# ex : git branch test-branch
```
2. 작업 완료 후 성능이 좋은 경우 자체 테스트 및 검정 후 remote 서버에 branch push(main에는 영향없음)
**이때, 반드시 자체 테스트를 통해 코드에 에러가 없는지 검증할것!!**
```git
git add .
git commit -m "Commit Message(detail)"
git push <remote이름> <branch이름>
# ex : git push origin test-branch
```
3. 깃허브 repository에서 compare&pullRequest를 눌러서 PR날리기
4. 어떤 수정을 했는지 PR message는 자세하게 써줘야함!
5. 1명의 Reviewer를 반드시 선언
6. Reviewr는 책임감있게 코드를 리뷰하고 결과를 단톡방이나 slack에 간단히 정리한 후 merge
## 내 Branch version이 낮을 때 (흔한사례)
- Branch로 작업도중 Main이 변하는 경우는 흔함
- 아마 Branch를 생성한 참조(main version)가 달라졌기 때문에 branch push가 안될 것임 (되어도 충돌문제 발생할 듯)
- 기존의 내 작업은 유지하되 main에서 코드만 가져와야함
### git fetch
fetch를 통해 변화된 main을 가져오고 내가 작업중인 branch랑 merge하기
## 내 Branch 코딩중 checkout이 필요할 때
- git은 데이터 손실을 싫어하기 때문에 commit을 하지 않은 상태로 branch에서 다른 branch로 checkout하게 되면 코드가 변하지 않음 -> 대참사
- 이를 방지하기 위해 두가지 방안이 존재
### 방법1) 일단 commit하기
일단 commit으 하면 git 어딘가에 저장되기 때문에 checkout으로 다른 Branch로 이동하더라도 작업중이던 코드가 유지되지 않음 그러나, commit은 엄밀하게 완성된 기능의 단위인데 작업 중 commit이 남발되는게 좋은 상황은 아님
### 방법2) git stash
stash를 이용하면 지금까지의 내 작업들을 잠시 보관하고 필요할때 꺼내서 적용할 수 있음 commit을 남발하지 않고 git checkout을 마음대로 할 수 있음
[참고링크(블로그)](https://mylko72.gitbooks.io/git/content/_stash.html)
## 참고링크
재형님 - [협업을 위한 git 커밋컨벤션 설정](https://overcome-the-limits.tistory.com/entry/%ED%98%91%EC%97%85-%ED%98%91%EC%97%85%EC%9D%84-%EC%9C%84%ED%95%9C-%EA%B8%B0%EB%B3%B8%EC%A0%81%EC%9D%B8-git-%EC%BB%A4%EB%B0%8B%EC%BB%A8%EB%B2%A4%EC%85%98-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0)