제대로 파는 Git & GitHub - by 얄코 11 ~ 15(完)까지
각 커밋마다의 변경사항 함께 보기
git log -p
최근 n개 커밋만 보기
git log -(갯수)
통계와 함께 보기
git log --stat
--shortstat
한 줄로 보기
git log --oneline
--pretty=oneline --abbrev-commit
의 줄임git log -S (검색어)
George
로 검색git log --grep (검색어)
자주 사용되는 그래프 로그 보기
git log --all --decorate --oneline --graph
--all
: 모든 브랜치 보기--graph
: 그래프 표현--decorate
: 브랜치, 태그 등 모든 레퍼런스 표시--decorate=no
--decorate=short
: 기본--decorate=full
얄코 포맷
git log --graph --all --pretty=format:'%C(yellow) %h %C(reset)%C(blue)%ad%C(reset) : %C(white)%s %C(bold green)-- %an%C(reset) %C(bold red)%d%C(reset)' --date=short
date
를 relative
로 바꿔보기워킹 디렉토리의 변경사항 확인
git diff
파일명만 확인
git diff --name-only
스테이지의 확인
git diff --staged
--cached
와 같음커밋간의 차이 확인
git diff (커밋1) (커밋2)
브랜치간의 차이 확인
git diff (브랜치1) (브랜치2)
각 라인의 작성자를 확인합니다.
git blame (파일명)
git blame -L (시작줄) (끝줄, 또는 +줄수) (파일명)
이진 탐색 알고리즘으로 문제의 발생 시점을 찾아냅니다.
git bisect start
오류발생 지점임을 표시
git bisect bad
의심 지점으로 이동
git checkout (해당 커밋 해시)
오류 발생 않을 시 양호함 표시
git bisect good
♻️ 원인을 찾을 때까지 반복
git bisect good/bad
git bisect reset
Git상의 이벤트마다 자동으로 실행될 스크립트를 지정합니다.
📁 Git Hooks
폴더 보기
프로젝트 폴더 내 .git > hooks
폴더 확인
.sample
을 없애면 훅 실행파일이 됨main-project
에 서브모듈로 submodule
프로젝트 추가주 프로젝트
디렉토리상 터미널에서 아래 명령어 실행
git submodule add (submodule의 GitHub 레포지토리 주소) (하위폴더명, 없을 시 생략)
서브 프로젝트
폴더와 .gitmodules
파일 확인주 프로젝트
에서 git status
로 확인서브 프로젝트
의 변경사항은 포함되지 않음 확인주 프로젝트
에서 변경사항 커밋 뒤 푸시서브 프로젝트
에서 변경사항 커밋 뒤 푸시주 프로젝트
에서 상태 확인주 프로젝트
에서 커밋, 푸시 뒤 GitHub에서 확인git submodule init (특정 서브모듈 지정시 해당 이름)
git submodule update
주 프로젝트
에서 아래 명령어로 업데이트
git submodule update --remote
--recursive
추가README.md
를 활용한 문서화markdownguide.org
GitHub 제공 가이드
README.md
파일 작성GitHub
에서 프로젝트 페이지 살펴보기README.md
만들어보기변경사항을 merge하기 전 리뷰를 거치기 위함
Compare & pull request
버튼 클릭~ branches
에서 New pull request
클릭Create pull request
클릭Pull requests
탭 클릭Close pull request
Merge pull request
버그나 문제 제보, 추가할 기능 등의 이슈 소통
예시
Close issue
(내 아이디).github.io
로 지을 것!!
입력하고 엔터 누르면 기본 HTML 템플릿 생성https://(내 아이디).github.io
에서 사이트 확인GitHub 커밋 내역 살펴보기
Verified
: 신뢰할 만한 출처에서 커밋되었다는 인증brew install gnupg
gpg --version
으로 확인커밋에 사인: 명령어에 -S
옵션 추가
git commit -S -m '(메시지)'
태그에 사인: 명령어에 -s
옵션 추가
git tag -s (태그명) (커밋 해시) -m (메시지)
CI/CD : 지속적 통합과 배포
Actions
탭 살펴보기Actions
탭에서 액션들 살펴보고 적용해보기Marketplace
살펴보고 적용해보기로그인/로그아웃
gh auth (login/logout)
레포지토리들 보기
gh repo list
프로젝트 클론
gh repo clone (사용자명)/(레포지토리명)
프로젝트 생성/삭제
gh repo (create/delete)
이슈 목록 보기
gh issue list
이슈 열람/닫기
gh issue (view/close) (이슈 번호)
이슈 생성
gh issue create
풀 리퀘스트 만들기/목록 보기
gh pr (create/list)
풀 리퀘스트 보기/코멘트/닫기/병합
gh pr (view/comment/close/merge) (PR 번호)