반응형
이 포스팅에서 작성하는 내용은 제대로 파는 Git & GitHub - by 얄코 에서 발췌하였습니다.
1. branch
merge 방식
- fastforward : 공통 조상 커밋을 가진 두 브랜치에서 A브랜치만 커밋했을 경우, 커밋하지 않은 B브랜치의 헤드를 단순히 A브랜치 의 헤드로 보내면서 merge하는 방식
- 3-way merge : A브랜치, B브랜치, 두 브랜치의 공통 조상(가장 최근) 커밋 시점. 3 시점을 비교해서 진행하는 merge
merge option에 --no-ff 를 넣어주면 3-way-merge로 작동한다.
cherry-pick
- 다른 브랜치의 원하는 커밋만 가져오는 명령어
- git cherry-pick [커밋 해시] : 해당 커밋 해시만 현재 브랜치로 가져온다.
git rebase --onto [도착 브랜치] [출발 브랜치] [이동할 브랜치] : 브랜치를 A브랜치에서 B브랜치로 옮기는 명령어
2. log
log
- git log -p : 각 커밋의 변경사항도 같이 확인
- git log -n : 최근 n개까지의 커밋 로그만 확인
- git log --oneline : 간단하게 로그 보기(한줄로 출력)
- git log -S [단어] : 로그에서 단어를 검색
- git log --grep [단어] : 커밋 메시지에서 단어를 검색
- git log --all --decorate --oneline --graph : git 로그와 함께 각 브랜치별 그래프를 확인
diff
- git diff : working directory 변경 사항 확인
- --name-only : 파일명만 확인
- --staged : working directory가 아닌, 스테이지 확인
- git diff [commit-hash1] [commt-hash2] : 커밋 해시 1과 커밋 해시 2의 차이 확인
- git diff [branch1] [branch2] : 브랜치1과 브랜치2의 차이 확인
blame
- git blame [file-name] : 파일명의 내용을 수정한 사용자를 확인
여기에 표시되는 사용자의 기준은 git config의 username이다.
bisect
- 이진 탐색 알고리즘으로 문제 발생 시점을 확인.
커밋 시점을 알아서 이동해준다. - 문제가 발생한 커밋의 위치를 찾을 때까지 good / bad를 반복하면, 결국 찾게되고 그 버전을 알려준다.
- 오류를 어떻게 찾는지? 해당 기능을 직접 실행해보고 오류를 판단 후 good / bad 입력
- git bisect start : bisect 모드 시작
- git bisect bad : 오류가 발생했다고 알림
- git bisect good : 오류가 발생하지 않았다고 알림
- git checkout [커밋-해시] : 해당 커밋 해시로 이동
- git bisect reset : 이진 탐색 종료
3. Hooks
git에서 이벤트가 발생할 때마다 자동으로 실행되는 스크립트
반응형
'Git' 카테고리의 다른 글
[Git] Review Comment Pending (0) | 2023.05.28 |
---|---|
[Git] clean, restore, reflog, tag (0) | 2023.03.19 |
[Git] Git fetch pull, config, hunk, stash (0) | 2023.03.19 |
[Git] Git 구조 (0) | 2023.03.18 |
[Git] Git 기초 (0) | 2023.03.17 |