git status # 변경된 내용, 변경 되지 않은 내용을 확인 가능
git reset HEAD
git reset HEAD <file>
git reset --soft <commit>
# 지정한 커밋으로 돌아가며, 변경 상황 유지, 지정한 커밋 이후에 생성된 파일은 그대로임.
git reset --hard <commit> # 지정한 커밋으로 돌아가며, 변경 상황 삭제, 지정한 커밋 이후에 생성된 파일들을 삭제함.
git revert
# 지정한 커밋으로 돌아가며, 이전의 커밋들을 모두 취소하지 않고 하나만 취소함.
Git Reset and Revert Tutorial for Beginners | DataCamp
git stash # 변경사항 임시 저장
git stash list # stash에 보관된 변경사항을 출
git stash drop # stash 안에 있는 것을 하나 제거
git stash pop # 변경 사항을 꺼내서 현재 코드에 저장함.
git diff
// 변경 사항을 확인가능
각 기능 별로 독립적인 브렌치
를 만드는 전략
# login 브렌치 생성
git checkout -b feature/login
git push origin feature/login
# 기준 브렌치에 merge
git chcekout main
git merge --no-ff feature/new-feature
git branch -d feature/new-feature
기준 브렌치
는 항상 배포 가능한 상태이다.기준 브렌치
에서 새로운 브렌치
생성하고 기준 브렌치
에 push
pull request
통해 코드 리뷰 진행 후에 merge
됨# login 브렌치 생성
git checkout -b feature/login
git push origin feature/login
# 기준 브렌치에 merge 요청
git chcekout main
git merge --no-ff feature/new-feature
git branch -d feature/new-feature
# 이후에 PR을 하게 됨.
프로젝트 코드와 릴리스를 체계적으로 진행하는 방법론
Master
: 프로덕션 환경(Production, 개발 환경(dev,stage,qa,production) 중에서 실제 서비스를 위한 운영 환경)에 배포되는 안정적인 코드가 저장되는 브랜치Develop
: 개발 중인 코드를 관리하는 브랜치Feature
: 새로운 기능 개발을 위한 브랜치(Develop
브랜치에서 분기)Release
: 새로운 버전 릴리스를 준비하는 브랜치(Develop
브랜치에서 분기)Hotfix
: 긴급한 버그 수정을 위한 브랜치(Master
브랜치에서 분기)Deveop
브랜치에서 Feature
브랜치를 생성Develop
브랜치로 머지Develop
브랜치에서 Relaese
브랜치 생성Release
브랜치를 Master
브랜치에 머지Release
브랜치를 Develop
브랜치에도 머지