Git flow란 Git 개발에 표준과 같이 사용되는 방법론입니다.
Git flow는 기능이 아닌 방법론입니다.
Git flow는 총 5가지의 브랜치를 사용하여 작업합니다.
git flow를 사용하기 위해 init 명령어를 이용해 git 저장소를 초기화 해줍니다.
$ git flow init
초기화를 진행하면 git flow에 맞는 브랜치를 생성할 수 있게 됩니다.
❗ 엔터키를 누르면 기본 브랜치명으로 생성됩니다.
→ 기본값으로만 설정하고 싶으면 git flow init -d를 사용하면 됩니다.
개발 브랜치, 작업한 feature들을 병합합니다.
명령어를 입력하면, <브랜치 명>에 맞는 브랜치가 생성되고 자동으로 switch 해줍니다.
생성된 브랜치에서 개발을 진행하면 됩니다.
$ git flow feature start <브랜치 명>
명령을 실행하면 develop 브랜치로 switch하고 feature의 작업들을 병합해줍니다.
이때 Pull Requests가 필요하다면 Github에서 작업을 처리합니다.
$ git flow feature finish <브랜치 명>
feature 브랜치를 원격 저장소에 push합니다.
$ git flow feature publish <브랜치 명>
명령을 실행하면 release/<버전>이라는 브랜치가 생성됩니다.
이 브랜치에는 릴리즈 과정에서 수정된 작업 내용들이 들어갑니다.
$ git flow release start <버전>
feature 브랜치와 같이 원격 저장소에 push해 주는 명령어입니다.
$ git flow release publish <버전>
finish 명령을 실행하면,
1) release 브랜치를 main 브랜치와 병합합니다.
2) release 버전의 태그를 생성합니다.
3) release 브랜치를 develop 브랜치에 병합합니다.
4) release 브랜치를 삭제합니다.
$ git flow release finish <버전>
❗ 원격 저장소에 push할 때 git push --tags를 사용해 태그를 push해야 합니다.
명령어를 실행하면 hotfix/<버전>이라는 브랜치가 생성됩니다.
명령어를 실행하면,
1) hotfix 브랜치를 main 브랜치와 병합합니다.
2) hotfix 버전을 태그로 생성하고, 추가됩니다.
3) hotfix 브랜치를 develop 브랜치와 병합합니다.
4) hotfix 브랜치를 삭제합니다.
❗ 원격 저장소에 push할 때 git push --tags를 사용해 태그를 push해야 합니다.
쉘 명령어인 mv를 이용해 이름을 바꿀 수 있습니다.
$ git mv <기존 이름> <새 이름>
❗ git 명령어를 사용하지 않고 mv 명령어만 사용했을 경우 파일이 삭제되고 다시 생성됩니다.
restore 명령어를 사용하면 스테이징에 올라간 파일들을 내릴 수 있습니다.
$ git restore --staged <file>
--amend 플래그를 사용하면, 가장 최신 커밋을 수정할 수 있습니다.
$ git commit --amend
현재 HEAD에서 직전의 N개의 커밋을 순서대로 거슬러 올라가 해당 내역에 대한 commit과 push를 수행합니다.
$ git revert --no-commit HEAD~2.. -> HEAD에서 2개의 커밋을 되돌립니다.
깃왕짱🙏🏻