반응형
이 포스팅에서 작성하는 내용은 제대로 파는 Git & GitHub - by 얄코 에서 발췌하였습니다.
1. fetch vs pull
- fetch : 원격 저장소의 최신 커밋 내역들을 로컬로 가져온다. (가져오기만 하고 어떠한 브랜치에도 적용 X)
- pull : 원격 저장소의 최신 커밋 내역들을 로컬로 가져와서 rebase or merge
git checkout [원격 저장소 이름]/[브랜치 이름] : fetch를 통해 원격 저장소의 최신 커밋 내역을 가져온 경우, 현재 브랜치에 적용하지 않고 수정 내역을 확인하는 방법
2. config
git config 에는 global 설정과 local 설정이 있으며, global 설정보다 각 local 설정이 우선시 된다.
- git config (global) --list : 현재 모든 설정 값 확인
- git config (global) -e : 에디터에서 보기 (vi)
- git config --global core.editor "[에디터 프로그램 exe 경로] --wait" : 기본 에디터를 에디터 프로그램 exe 로 설정
- 에디터 프로그램 exe 경로에 code 를 기입하면 vscode가 연결된다.
- --wait : 에디터 프로그램이 git config 파일을 열고 있는 동안, CLI 동작을 잠시 정지
- git config --global core.autocrlf [true/input]: OS 별 줄바꿈 호환 문제 해결
윈도우라면 true, 맥이라면 input을 대체 - git config pull.rebase [true/false] : pull 기본 전략을 merge로 하면 false, rebase로 하면 true
- git config --global push.default current : git push 할 때, 명시적으로 브랜치를 정해주지 않으면 로컬과 동일한 브랜치명으로 커밋하는 설정
- git config --global alias.[단축키] '명령어' : git 단축키(alias) 설정.
ex) git config --global alias.co 'checkout'
https://git-scm.com/book/ko/v2/Git%EC%9D%98-%EA%B8%B0%EC%B4%88-Git-Alias
3 .hunk
- git add -p : 파일의 각 수정사항을 확인하고 수정사항 별로 add
- y: add 진행, n : 진행 X, ? : 도움말 보기
- git commit -v : staging area에 넣은 파일들을 하나하나 변경사항을 확인해서 커밋한다.
4. Stash
파일들을 수정하다가 잠시 임의의 장소에 보관할 때 사용하는 명령어
- git stash : 파일 잠시 보관하기 (현재 진행중인 작업 파일 모두)
(= git stash save)- -p : 원하는 파일만 선택
- -m : 메시지 표현
- git stash list : 보관한 파일 목록 조회
- git stash apply (stash@{0}) : 특정 파일만 가져오기(파일을 지정하지 않은 경우, 마지막에 보관한 파일)
- git stash drop (stash@{0}) : 특정 파일을 stash에서 지우기(파일을 지정하지 않은 경우, 마지막에 보관한 파일)
- git stash pop (stash@{0}) : 보관한 파일 다시 가져오기
- git stash clear : 보관한 파일 비우기
- git stash branch [branch-name] : 새 브랜치를 만들어서 해당 브랜치에 pop
5. 커밋 수정
- git commit --amend : 커밋 메시지 수정 및 현재 stating area에 있는 파일 추가 (마지막 커밋)
- git rebase -i [커밋 해시] : 해당 커밋 해시의 앞부분을 수정
명령어 | 동작 |
p or pick | 커밋 유지 |
r or reword | 커밋 메시지 수정 |
e or edit | 커밋 수정 |
d or drop | 커밋 삭제 |
s or squash | 이전 커밋에 합치기 |
반응형
'Git' 카테고리의 다른 글
[Git] Review Comment Pending (0) | 2023.05.28 |
---|---|
[Git] branch, log, hooks (0) | 2023.03.19 |
[Git] clean, restore, reflog, tag (0) | 2023.03.19 |
[Git] Git 구조 (0) | 2023.03.18 |
[Git] Git 기초 (0) | 2023.03.17 |