git reset --option HEAD
reset 옵션
–soft : index 보존(add한 상태, staged 상태), 워킹 디렉터리의 파일 보존. 즉 모두 보존.
–mixed : index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉터리의 파일 보존 (기본 옵션)
–hard : index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉터리의 파일 삭제. 즉 모두 취소.
https://gmlwjd9405.github.io/2018/05/25/git-add-cancle.html
git flow 폴더를 만들고 git init 명령어를 통해 git 저장소를 만듭니다.
vim 에디터를 통해 f1.txt를 만들고 내용 1을 추가해줍니다.
git add, git commit 명령어를 통해 fitstcommit을 생성합니다.
git checkout -b "develop" 명령어를 통해 develop 브랜치를 생성한 후 이동합니다.
git log --decorate --all --graph --oneline 명령어를 사용하면 git branch를 좀 더 자세히 볼 수 있습니다.
현재 develop 브랜치와 master branch 둘 다 firstcommit에 머물러 있습니다.
vim 에디터를 통해 f1.txt 파일을 수정합니다.
develop1 commit를 만듭니다. git log를 통해 조회해 보니 master branch는 firstcommit에 머물러 있고 develop 브랜치는 develop1에 머물러 있습니다.
feautre 브랜치를 만든 후 vim 에디터를 통해 파일을 수정한 후 feat#1 커밋을 생성합니다. git log를 통해 살펴보면 master, develop, feature 브랜치의 버전이 다 다릅니다.
develop 브랜치로 이동한 후 feature 브랜치를 합쳐줍니다. merge 명령어를 통해 브랜치를 병합한 후 git log를 살펴보면 develop 브랜치도 feat 커밋을 가리키고 있습니다.
develop 브랜치에 개발내용이 잘 반영되었으니 feature 브랜치를 삭제합니다.
수정사항이 있을때는 fix 브랜치를 파서 그 곳에서 작업한 후 커밋을 해주면 됩니다.
develop 브랜치로 이동 후 fix 브랜치를 병합 한 후 개발이 다 끝나면 master 브랜치로 이동 후 develop 브랜치를 병합합니다. 그러면 master 브랜치도 최신 버전의 커밋을 가리킵니다.
이렇게 git flow를 통해 개발을 하면 새로운 기능을 개발 할 때는 feature 브랜치를 만든 후 그곳에서 작업을 하고 작업이 끝나면 develop 브랜치로 병합을 해줍니다. 또한 수정사항이 있을 경우에도 fix 브랜치를 판 후 그곳에서 작업을 한 후 최종 사항을 develop 브랜치로 병합합니다. 이렇게 개발을 하다가 나중에 배포하기 직전에 최종 버전을 master 브랜치에 병합 시킵니다.