[내일배움단 ai트랙 3기]깃 강의(2)

2022. 9. 12. 01:19스파르타코딩클럽[AI트랙 3기]/TIL

22.09.10

 오늘은 들뜬 마음으로 공부해서 사실 공부가 공부가 아니었다... 계획한 양만큼 다 하지도 못하고 뭔가 복습도 제대로 안되는 느낌... 아 이번 추석에는 진짜 실력을 뒤집고 싶었는데 내가 뒤집어 졌다... 그래도 뭐 했다는 것에 의의를 두고 배운 것이라도 다시해보려고한다. 파이선은 나만 못따라가는 것 같아서 진짜 내라는 놈이 한심해서 짜증났는데 깃은 새로운 것이라 괜찮은 것 같기도..? 오시영 튜터님이 설명을 기가 막히게 해주신다. 아 근데 강민철튜터님이 명령어로 하는 깃 강의 해주셨는데 진짜 열심히 해주셨는데 어려웠다. 왜이렇게 적응이 안되지 나는 ... 많이 접해보고 그래야겠다...


ㅁ깃강의(오시영 튜터님)

2-8 작업 내용 합치기 merge 정리

중간정리

-머지는 브랜치 작엽내역 commmit들을 다른 branch로 합치기.

-구글링 꿀팁:

1)기술(도구) + 이름 : sourcetree branch

2)기술 처음 배울 때 : git tutuorial

3)기능 찾을 때 : git how to merge

4)어떻게 사용하는지 예제 보고 싶을 때 : github flow example

5)원하는 사이트 명 포함 검색 : stackoverflow git merge

>사이트 : stackoverflow 개발자들의 지식인 (vote 수가 높으면 높음)

>블로그 : tech 회사의 기술블로그 IT 전문 매거진

>기술 공식 문서 : , 파이선 등

 

2-9 충돌 해결하기 merge conflict 개념

-개념 탑재

에러를 안나는게 중요한게 아니라 버그를 고칠 수 있어야 함. 능숙한 프로그래머는 버그 찾고 수정할 수 있으면 됨.

실습) 국물내는법과 찌개비법 충돌 만들기 (육수내기.txt에서 일부러 충돌)

소스트리 namefeature/stock, feature/jjigae_rtan 해서 만들어줌. -feature/stock 체크아웃하고 탐색기에서 soup.txt 수정 후 저장. - 커밋하고 한 번 더 커밋(또내용바꾼다음)

jjigae_rtan 체크아웃 soup.txt 수정 후 저장. - 커밋하고 대기

 

2-10 충돌 해결하기 merge conflict 실습

머지해보기: 어디에 머지 할지 정하고(name) 병합해줌.(feature/stock), 찌개르탄도 머지해줌.

충돌 병합메세지 나옴. 수정하기 위해 충돌난거 더블클릭해서 수정하고 커밋에서 자동으로 내용 적어주면 잘 oa.

 

 

2-11 충돌 해결하기 merge conflict 정리

서로 영향 없다가 머지하는 과정에서 같은 파일이 수정된 것이 발견되면 안됨.

컨플릭트 수정하려면

<<<<haed

main 브랜치 내용

=======

feature/jjigae 브랜치 내용

>>>>>>feature/jjigae

겹치는 내용

‘<<<<<’ , ‘======’, ‘>>>>>’를 지워주고 텍스트 내용 수정.

-여러파일을 수정할 때도 마찬가지. 새로운 내용을 추가하는 것은 안됨. 브랜치내용에 있던 것으로 해야함. 우선 합친 후에 따로 내용 수정하는 것을 권장. 같은 파일안에서 여러번 충돌이나도 똑같이 수정해줌.

 

2-12 원격 repobranch 개념과 실습

-로컬리포에서 원격리포는 브랜치 단위로 트래킹 됨. mainorigin/main이 연결되어있음.

-, 푸시는 특정브랜치 에서 하는 것임.

-이름표에 집중해보기.

-소스트리에서 브랜치 새로 만들어서 해보기. 다른브랜치 삭제.

-최신것에서 브랜치 feature/jjim 생성(체크아웃 확인) - 탐색기(헷갈리니 과거 작업창 삭제) - 새로운 파일 만들기(jjim.text) - 파일상태(add하고 커밋해주기) jiim에 체크아웃돼있는지 확인하고 푸시 깃허브에 좌측 상단에 name누르면 새로 들어온 branch 있는 것 확인 가능.

 

2-13 원격 repobranch 정리와 꿀팁

ㅇ중간정리

원격 repo와 로컬 repo의 특정 브랜치를 가져오는 것.

ㅇ꿀팁

-실제로 배우려면, 학습하려면. 머리를 쓰는 느낌이 나야함. ‘익스트림 프로그래밍

-좌절을 하는 이유는 시도를 했기때문.

-난이도 조절 : 코드스니펫 추가자료 읽어보고 실습하기. 에러는 고치면 됨.

 

2-14 2주차 개념지도 그리기

 

2-15 2주차 끝 & 숙제 설명

1)til repogit_week02라는 이름으로 브랜치 만들기

2)해당 브랜치에 텍스트파일 적고 커밋

3)커밋하고 메인브랜치로 머지

4)원격 repopush

5)github repourl 제출

 

3-1 3주차 오늘 배울 것

[수업목표]

1.기본적인 git 사용을 넘어 협업하고 싶은 사람이 되자 pr, 의사소통 잘되는 협업 매너

2.개발자의 sns github 활용하기 참고할 좋으코드와 개발 트랜드 파악

3.github로 나의 개발을 나타내는 포트폴리오를 만듦 개발자 이력서나 명함에 깃헙 주소

 

3-2 내작업을 반영해 주시겠어요? - pr 01

작업한 내용을 검토해달라고 하는 것 pull request

실전 사용 회화 : 프로젝트 제안사항 있으면 pr 날려주세요~라고 함.

깃허브 - 김치레시피 피쳐/풀리퀘스트 어느브랜치에 머지 요청할지 정해줌. - 메시지 작성 : ~했습니다. 합쳐주시곘어요 하고 create pull request . 브랜치 단위로 pr .

delete branch 해줌.

소스트리 가서 패치 눌러줌(새로고침), 풀은 합쳐버리는 것이고 패치는 내용만 보이게 함. 메인에 체크아웃하고 풀함. pr 완료된 후에 브랜치를 지워줌.

 

3-3 내 작업을 반영해 주시겠어요? - pr 02

fork 다른 repo를 가져오는 껏.

다른거 보고 이슈를 먼저 확인. 볶음김치 요리법 추가해주세요.

-fork 버튼 눌러서 가져오고, 클론해줌(깃허브에서 https 코드 복사)

-소스트리에서 새로만들기 하고 저장소 새로 만들기.(클론) - 브랜치 만들기(feature/1_stir_fired)

-새로만든 브랜치에서 txt만들어주고 푸시해줌. 캠페얼 &풀리퀘스트 하고 풀리퀘스트

 

3-4 최신 commit 고치기 amend

-되돌리기 할 때 기본적으로 나만 작성하는 특정한 브랜치 하나에만 적용한다.

-amend는 가장 최신것만 가능

-김치레시피에 새로운 브랜치 만들 것 (tutorial-bttf)

-tutorial에서 체크아웃 하고 commit을 하나 해줌. 파일 아무거나 2개를 수정해줌. 둘중에 하나만 커밋.

-파일상태에서 커밋 옵션 마지막 커밋 수정 아까안한거 추가해주기.

푸시한 경우) amend 하기. 강제 푸시는 정말 위험함.(꼬일수 있음.)

푸시 tutorial 로 해주기. 소스코드 설정 - allow force push

-커밋옵션 마지막 커밋 수정 커밋메시지만 수정. -강제푸시 체크하고 푸시.

 

3-5 commit 관리 한 걸음 더 revert, reset

-amend는 최신커밋. 나머지는 그 외

-revert : 우클릭해서 되돌리기(커밋되돌리기) - 푸시해서 반영하기.

-reset 커밋한 작업내용이 안보임. 리셋을 기준으로 그 다음에 한 작업들이 다 날아감.

-resetsoft, mixed, hard 있음.

실습)소스코드 tuto 체크아웃 맨위에거 커밋(파일 2개 수정하고 따로 커밋)

reset은 초기화

reset jeon 초기화하면 rice는 커밋하지 않은 상태로 돌아감. 작업 내용은 남아 있음. hard는 파일상태에도 안남아아있음.

 

3-6 변경사항 임시 보관하기 stash

임시보관하기

실습) 소스트리 맨 위에서 파일 수정. tuto에서 작업하려고하는데 갑자기 main을로 와서 작업좀해달라고 요청들어옴.(커밋을 아직 안한 상태) -깔끔하게 스태시 사용 메시지 적고 스태시(파일의 작업내용 자체가 안보임.) - 메인으로 체크아웃해도되고 다른 작업해도됨. - 다시 tuto작업할 때 밑에 스태시(치워두기) - 우클릭(스태시 적용) 보통 사용하고나서 스태시목록에서 삭제해줌.

-커밋한적 없는 파일은 스태시 하지않해도 됨.

꿀팁)같은파일 여러개 stash하면 여기저기 흩어지게 된다.

-중간정리

1)커밋되돌리는 것은 내가 사용하는 브랜치에서만 할 것

2)리버트특정 작업내용을 없애는 것(날아가지 않음)

 

3-7 작업으로 의사소통하기

-협업을 위한 기본 매너

1)커밋으로 소통하기 컨벤션(규칙)

좋은 커밋메세지 작성하기 : https://meetup.toast.com/posts/106

2)커밋의 단위를 적절하게 끊기

 

3-8 코드리뷰로 서로에게 피드백 주기

-코드리뷰 : 코드를 리뷰하는 것(기능을 중점적으로 봄)

이유 : 코드 품질을 높일 수 있음. 다른사람의 눈으로 버그를 발견. 서로 지식 나누며 더나은 방법 찾기 가기 - > 팀의 코드 품질을 높임.

구글 코드리뷰 가이드(한글번역)

중점적으로 볼 것 : 디자인, 기능, 복잡도, 테스트, 이름, 주석, 스타일

회사별 코드리뷰 소개는 회사 분위기 파악에 유용.

실습)김치요리법 os 커밋에 대해 각각 코드리뷰할 수 있음. 줄별로 댓글달기

 

3-9 git 프로젝트 관리 gitignore

깃에서 제외시키기. 공유하면 안되는 것은 gitignore사용. 파일명을 .gitignore 만들어주고 넣어줌.

실습)소스트리 kimci recipe에 새로 파일 만들기 - .gitignore하고 자동으로 txt파일 만드는 옵션 풀고 만들기. 소스트리에서 파일상태에서 gitignore 들어왔는지 확인 txt 파일 만들기 소스코드에서 파일상태 다시 확인하면 새로운 파일 등장. - .gitignore에 만든 파일 이름을 그대로 넣기.(gitignore파일 수정하면 다시 등장함.)

우선 만든 파일 삭제하고 실제 개발환경처럼 gitignore 세팅하는 것 가능 사이트는 다음과 같음 : toptal.com/developers/gitignore에서 쓰는 기술을 검색해서 쓰면됨. 나오는 것을 복사해서 .gitignore에 붙여넣기 하면 파이썬은 무시하게 됨.

그리고 파일상태에서 gitingonre 빈파일이라고 하고 커밋하면 됨.

*)메모장에서 ignore 텍스트로하지말고 관리자권한으로 실행해서 ignore파일 생성할 때 .txt없애주면 정상 작동됨.