Branch Switching
브랜치를 옮기는데 git checkout이라는 기존의 명령어가 있었습니다. 이 명령어가 너무 많은 기능을 가지고 있어 문제가 있었습니다. 한 명령어가 너무 많은 기능을 가지게 되면 객체지향에서 말하는 GOD Object와 같은 설계가 탄생할 수 있기 때문에 git 시스템은 버전업그레이드를 거치며 git switch라는 명령어를 만들게 되었습니다.
- checkout
- 브랜치 전환 : git checkout branch-name을 사용하면 다른 브랜치로 전환가능
- 커밋으로이동 : git checkout commit-hash을 사용하여 특정 커밋으로 이동가능
- 파일복원 : git checkout --file-name을 사용하면 특정 파일을 이전 커밋상태로 복원 가능
- switch( 브랜치전환에만 초점)
- 브랜치전환 : git switch branch-name, 을 사용하면 다른 브랜치로 전환가능
- 새브랜치생성 및 전환 : git switch -c new-branch-name을 사용하면 새 브랜치를 생성하고 그 브랜치로 전환가능
협업순서
깃 협업시 작업순서
파란색 : 브랜치 만들기 위한, 초록색 : 커밋하기위한
- git 레포지터리 만들기
- git 레포지터리에 협업할 인원들 초대
- clone 하기 ( vscode에서 clone버튼을 클릭 OR git clone url)
- remote 설정하기 -> Fork 했을 경우( 포크했던 원본 저장소도 remote로 등록하는과정)
- git remote -v ( 명령어로 현재 어디를 저장소로 두고 있는지 확인)
- git remote add upstream 주소
- git branch 만들기
- git branch branchname
- git checkout branchname
- 파일 올리기
- git add, git commit, push(푸쉬는 git push origin 방금만든브랜치이름)
- pull Request
- 메시지 작성 후 PR 생성
- PR승인 후 Merge이후 동기화 및 branch 삭제
- 로컬git에서 방금 삭제한 Branch에 있다면 -> git checkout main -> git pull origin main -> git branch -d "삭제할브렌치이름"
- 코드동기화 : git pull (remote 별명)
- 브랜치삭제 : git branch -d (지정했던 브랜치이름)
- git branch : local에서 branch확인
- git branch -r : 원격(github)에서 branch 확인
- 로컬git에서 방금 삭제한 Branch에 있다면 -> git checkout main -> git pull origin main -> git branch -d "삭제할브렌치이름"
merge된 깃허브 - 깃 동기화(로컬 브랜치랑 메인브랜치다를때)
1. git fetch -p
- 깃허브의 브렌치목록을 로컬 깃으로도 동기화.
2. git checkout main , git pull origin main
- git branch -d 삭제할브렌치이름 ( 깃 브랜치 삭제)
git checkout -t origin/브랜치이름
git clone vs git pull
- git clone : 리모트 설정을 자동으로 해주는 초기 다운로드 때 사용
- clone : git init + git remote add origin {URL} + git pull origin main
- git pull : 리모트 설정이 이미 되어 있을 때 업데이트 사항 등을 다운로드 할때 사용
commit 메시지 규칙
커밋 메시지 구조
타입(스코프) : 주제(제목)
ex) git commit -m "feat: MyPage 필터 수정"
타입종류(커밋의 성격)
타입 이름 | 내용 |
feat | 새로운 기능에 대한 커밋 |
fix | 버그 수정에 대한 커밋 |
build | 빌드관련파일수정 / 모듈 설치 또는 삭제에 대한 커밋 |
chore | 그 외 자잘한 수정에 대한 커밋 |
ci | ci 관련 설정 수정에 대한 커밋 |
docs | 문서수정에 대한 커밋 |
style | 코드 스타일 혹은 포맷 등에 관한 커밋 |
refactor | 코드리팩토링에 대한 커밋 |
test | 테스트코드수정에 대한 커밋 |
perf | 성능개선에 대한 커밋 |
제목 규칙
- 제목은 50글자 이내로 제한
- 제목의 첫 글자는 대문자로 작성
- 제목 끝에는 마침표를 넣지 않는다.
- 제목은 명령문으로 사용하며 과거형을 사용하지 않는다.
'Git' 카테고리의 다른 글
Git push, clone, pull, pull request (0) | 2023.08.08 |
---|---|
merge(3-way, fast-forward, squash, rebase) (0) | 2023.08.08 |
Git - branch 만들기 (0) | 2023.08.08 |
Git - add, commit (0) | 2023.08.07 |