Git Hooks Git 상의 이벤트마다 자동으로 실행될 스크립트를 지정하는 방식 프로젝트 폴더 내 .git > hooks 폴더 확인 (파일 끝에 .sample을 없애면 훅 실행파일이 된다.) Gitmoji-cli 활용하기 mac 의 경우 brew install gitmoji https://github.com/carloscuesta/gitmoji-cli gitmoji -i hooks 폴더에 추가된 파일 확인하기 (prepare-commit-msg 실행파일 생성) 프로젝트에 수정 뒤 git add . , git commit 하여 진행 커밋 추가 뒤 push하여 GitHub에서 확인 git commit 시 깃모지 리스트들이 나열되고 그 중에 고른다. push 하면 다음과 같이 깃모지가 생성된 것을 볼 수 있..
Git 로그 다양한 사용법 옵션들을 활용한 다양한 사용법 git log -p 각 커밋마다 변경사항을 함께 볼 수 있다. git log -(갯수) 최근 n개의 커밋만 보는 기능 git log --stat 통계와 함께 보기 (더 간략하게 보는 방식은 --shortstat) git log --oneline 로그를 한 줄로 보기 (--pretty=oneline --abbrev-commit 의 줄임말) git log -S (검색어) 변경사항 내 단어 검색 (예시 : git log -S George) git log --grep (검색어) 커밋 메시지로 검색 제한된 옵션은 https://git-scm.com/book/ko/v2/Git%EC%9D%98-%EA%B8%B0%EC%B4%88-%EC%BB%A4%EB%B0%8B..
Git Branch 심화 Git merge 전략 Git 에서 merge가 이뤄지는 방식은 Fastforward와 3-way-merge가 있다. Fastforward 두 가지 브랜치가 있을 때, 하나가 다른 하나의 조상인 경우일 때 조상이 자식으로 HEAD만 옮겨갈 때를 의미한다. 즉, 이미 공통된 부분이며, 한 곳에서만 변경이 발생했기 때문에 굳이 별도의 커밋을 할 필요 없이 하나의 브랜치로(B) 만든 후 조상(A) 브랜치를 삭제한다. 해당 부분의 단점으론 어느 부분에서 병합했는 지 기록이 남지 않기 때문에 보기 어려울 수 있다. 만약 새로운 커밋 기록을 남기고 싶다면 git merge --no-ff (브랜치명) 을 사용하면 Fastforward 방식에서 새로운 커밋을 남길 수 있다. 3-way-merg..
Git Tag 특정 시점을 키워드로 저장하고 싶을 때, 커밋에 버전 정보를 붙이고자 할 때 깃 태그를 사용한다. Semantic Versioning에 대한 명세 문서 : https://semver.org/lang/ko/ 태그 달아보기 lightweight : 특정 커밋을 가리키는 용도 annotated : 작성자 정보와 날짜, 메시지, GPG 서명 포함 가능 마지막 커밋에 태그 달기 (lightweight) git tag v2.0.0 현존하는 태그 확인 git tag 원하는 태그의 내용 확인 git show v2.0.0 태그 삭제 git tag -d v2.0.0 마지막 커밋에 태그 달기 (annotated) git tag -a v2.0.0 입력 후 메시지는 git tag v2.0.0 -m '자진모리 버전..
관리되지 않는 파일들 삭제하기 git clean git clean은 추적하지 않는 파일들을 삭제하며, 해당 옵션들을 조합하여 사용한다. 파일들 추가한 뒤 옵션 조합과 함께 clean 명령어 사용해보기 toClean1.txt toClean2.txt dir/toClean3.txt 다음과 같이 사용할 수 있다. git restore 특정 파일을 지정된 상태로 복구할 때 git restore를 사용한다. 파일을 여러 개 수정하고 되돌리기 git restore (파일명) 워킹 디렉토리의 특정 파일 복구 파일명 자리에 . : 모든 파일 복구 다음과 같이 스테이징되지 않은 파일들에 한해서 취소할 수 있다. 스테이징 된 상태를 워킹 디렉토리로 돌려놓기 스테이징 된 파일을 복구하는 경우를 테스트하기 위해 아무 파일이나 ..
커밋 권장사항 하나의 커밋에는 한 단위의 작업을 넣도록 합니다. 한 작업을 여러 버전에 걸쳐 커밋하지 않습니다. 여러 작업을 한 버전에 커밋하지 않습니다. 커밋 메시지는 어떤 작업이 이뤄졌는지 알아볼 수 있도록 작성합니다. 커밋 컨벤션 type: subject body (optional) ... ... ... footer (optional) 널리 사용되는 커밋 메시지 작성 방식이다. feat: 압축파일 미리보기 기능 추가 사용자의 편의를 위해 압축을 풀기 전에 다음과 같이 압축파일 미리보기를 할 수 있도록 함 - 마우스 오른쪽 클릭 - 윈도우 탐색기 또는 맥 파인더의 미리보기 창 Closes #125 다음과 같이 사용한다. Footer 는 Breaking Point 가 있거나 특정 이슈에 대한 해결 작업..
Git Help git help 기본적인 명령어들과 설명을 볼 수 있다. git help -a Git 의 모든 명령어들을 볼 수 있다. git (명령어) -h 해당 명령어의 설명과 옵션을 보기 git (명령어) --help -w 해당 명령어의 문서내용 확인 https://git-scm.com/docs 를 참고하여 공식 문서를 확인할 수 있다. https://git-scm.com/book/ko/v2 Pro Git 책을 무료로 제공해준다. (한국어 포함) Git Config 설정 내용 중에 --global 이 포함되면 전역으로 설정된다. 설정값 확인 git config (global) --list 현재 모든 설정값 보기 git config (global) -e vi로 실행되며 에디터에서 보고 싶은 경우 Vs..
Git 장점 버전 관리 방식 (델타 vs 스냅샷) VCS (Version Controll System) 은 델타 방식과 스냅샷 방식으로 버전을 관리한다. 델타 방식은 SVN 등에서 사용하는 방식으로 수정사항이 발생한 버전만 따로 관리가 된다. 즉, 변경점들만 저장이 되기 때문에 누적되어서 관리가 된다. 스냅샷 방식은 Git 등에서 사용하는 방식으로 새로운 버전이 만들어질 때, 해당 버전의 최종 파일로 관리가 되고 있다. 델타 방식은 프로젝트의 규모가 커질 수록 변경 사항을 계산해야 되니까 느려지는 반면, 스냅샷 방식은 현재 버전만 사용하면 되므로 편리하다. 또한 Git은 분산 버전 관리를 하고 있어서 원격 저장소에 의존적이지 않게 작업할 수 있다. (다른 사람의 브랜치를 가져와 동기화하여 사용하는 등) ..