Git이란?
Git은 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템임.
2005년에 리누스 토발즈 (opens in a new tab)님이 개발하심.
GNU (일반 공중 사용 허가서) 하에 배포되는 자유 소프트웨어 임.
Git 처음 Repo 등록
Github에서 처음 repo 생성하면 나오는거 그대로 따라하면 됨.
이후 Git commit
git add .
git commit -m "commit 메시지"
git push
commit 작성 룰
- feat: 새로운 기능 추가
- fix: 버그 수정
- docs: 문서 수정
- style: 코드 스타일 변경 (코드 포매팅, 세미콜론 누락 등)
- design: 사용자 UI 디자인 변경 (CSS 등)
- test: 테스트 코드, 리팩토링 (Test Code)
- refactor: 리팩토링 (Production Code)
- build: 빌드 파일 수정
- ci: CI 설정 파일 수정
- perf: 성능 개선
- chore: 빌드 업무 수정, 패키지 매니저 수정 (gitignore 수정 등)
- rename: 파일 혹은 폴더명을 수정만 한 경우
- remove: 파일을 삭제만 한 경우
알아두면 유용한 깃 명령어
저장하기
간혹 브랜치를 변경할 때 merge가 덜 됐다거나 commit이 안되서 변경이 안될 때가 있는데 이럴 때 사용하는 명령어이다. 또는 branch를 새로 만들지 않고 dev 브랜치에서 작업하다가 다른 브랜치로 이동해야 할 때도 사용한다.
git stash
: 현재 변경사항을 임시로 저장
git add .
git stash
git stash pop
: 임시로 저장한 변경사항을 다시 불러옴
커밋 되돌리기
git reset .
: git add 한 내용 되돌리기
git reset .
-
git reset --soft [commit id]
: commit id 시점으로 커밋만 되돌림(파일 변경사항 유지) -
git reset --hard [commit id]
: commit id 완전히 되돌리기 (파일 변경사항 제거)
브랜치
현재 내 브랜치 확인
git branch
브랜치 생성
브랜치 새로 만들면서 브랜치 변경
git switch -c [브랜치명]
브랜치 전환
git switch [브랜치명]
원격 저장소의 브랜치
git branch -r
브랜치 삭제
git branch -d [브랜치명]
git request Download(Pull 하기)
Merge가 안되고 open되어 있는 request가 local에서 날아갔으면 다음과 같이 다운받아주면 됨.
- UserName : github ID
- RepoName : Request가 있는 Repo 이름
- 브랜치Name : Request를 생성한 브랜치 이름
git pull git@github.com:UserName/RepoName.git 브랜치Name
git switch 브랜치Name
실행 후 폴더에 가보면 해당 request에서 작성한 코드/파일들이 남아있음.
브랜치 전략
github flow에는 5가지 브랜치가 존재한다.
- master : 기준이 되는 브랜치로 제품을 배포하는 브랜치
- develop : 개발 브랜치로 개발자들이 이 브랜치를 기준으로 각자 작업한 기능들을 Merge
- feature : 단위 기능을 개발하는 브랜치로 기능 개발이 완료되면 develop 브랜치에 Merge
- release : 배포를 위해 master 브랜치로 보내기 전에 먼저 QA(품질검사)를 하기위한 브랜치
- hotfix : master 브랜치로 배포를 했는데 버그가 생겼을 떄 긴급 수정하는 브랜치
Reference
1인 워크 플로우 (opens in a new tab)
우아한형제들 기술블로그 (opens in a new tab)
코드 변경 이력 덮어쓰기
코드를 변경했는데 간혹 제대로 업로드가 되지 않는 경우, Git 저장소에 있는 코드를 내 로컬에 있는 코드로 덮어쓸 수 있음.