오늘은 진유림님께서 Git과 깃허브 특강을 해주셨다. 유튜브에서만 뵌 분의 특강을 들을 수 있어서 너무 영광이었다😍 평소에 소스트리에 익숙한데 Git GUI인 소스트리와 CLI방식을 동시에 실습해주셔서 CLI방식에도 관심을 가질 수 있었다. 또, 그림들을 이용한 git 협업방식은 새로운 내용(stash를 이제서야 알다니!!)들을 정말 쉽게 알 수 있게 해주셨다. 추가학습이 필요한 내용들은 진유린님의 인프런 강의를 통해서 더 보충해보자!
Git과 SVN의 차이점
Git Commit은 언제 해야하는게 좋은가요?
브랜치 종류 중 refactor과 feature의 차이
이슈 트래킹 시스템
git 명령어
git 외 꿀팁들
Git과 SVN 모두 형상관리 도구다. 그렇다면 형상관리 도구가 무엇인가?
형상관리 도구
여러명이서 프로젝트를 할 때 각자 할일을 나눠 개발을 하게 되는데, 이때 각자가 개발한 코드들을 하나의 관리 도구에서 통합적으로 또는 버전별로 관리하게 되는것을 말한다.
그렇다면 차이점은?
최소 하나의 단위가 끝나면 Commit을 하는걸 추천한다.
다양한 맥락이 최대한 안섞이는 것이 중요하기도 하고 머리를 환기해줄 수 있다!
커밋 메세지 같은 경우 간결하게 적당히 추상화해서 적는 것이 중요하다.
= 이슈를 생성하고 추적하고 관리하는 시스템
새로 알게 된 ITS 종류 Linear
Linear 공식 사이트
Jira도 좋지만 전반적으로 깔끔하고 심플한 UI를 원한다면 Linear도 좋은 것 같다!
switch : 브랜치를 변경하는 명령어로 쉽게 기존의 checkout을 떠올리면 된다. checkout만 알고 있던 나는 옛날사람...😢
amend: 깜빡하고 수정 못한 파일이 있어서 방금 만든 커밋에 추가하고 싶을 때 사용한다.
amend 명령어를 편리하게 사용하기 위해서 각 feature 브랜치는 담당하는 개발자 혼자 사용하는 것이 좋다.
stash: 변경사항을 잠시 킵해두고 싶을 때 사용한다. 즉 쉽게 말하면 어떤 작업을 하고 있고 커밋은 하고 싶지 않은데 다른 브랜치에서의 작업이 요구되었을 때 stash를 사용하면 커밋을 하지 않고도 그 내용들을 킵해둘 수 있다.
reset: 옛날 커밋으로 브랜치를 되돌리고 싶을 때 사용하며 히스토리가 변경된다.
--hard : reset 하기 전까지 한 모든 변경사항을 없앤다.
revert: 이전 커밋 내역들 즉 히스토리는 그대로 두고, 커밋을 되돌리고 싶을 때 사용한다.
cherry-pick: 어떤 특정한 커밋 하나만 떼서 현재의 브랜치에 붙이고 싶을 때 사용한다.
git reflog: git reset --hard된 히스토리 내역들을 확인 가능하다.
진유림님의 실습과정을 보면서 발견하게 됐다. 협업을 할 때, 코드에 커서를 올리면 해당 커밋을 언제 누가 작성했는지 알려준다.
코드리뷰
장점: 내 코드를 논리적으로 설명 할 수 있게 되고 코딩 컨벤션이 비슷해져 다른 코드의 맥락을 파악할 수 있다.
그렇다면 코드리뷰에서 선호하는 질문은?
어떤 코드의 확장성에 대한 질문 또는 어떤 버그를 낼 수도 있는데 개선사항에 대한 질문
신입 개발자에게 바라는 점이나 꿀팁
참고 자료
진유림님의 Git 인프런 강의