https://danielkummer.github.io/git-flow-cheatsheet/index.ko_KR.html

Git Flow

$ git flow init
git flow init을 하면 프로세스 별로 사용할 branch 명을 입력하라는 메시지가 뜬다.
develop branch에서 개발하고, master로 realease하는 방식으로, 기본값은 develop, master이다.
기본값으로 사용하고 싶으면 그냥 엔터만 입력하면 된다.
이 과정을 생략하고 싶다면 git flow init -d를 입력하여 -d 옵션을 주면 된다.

gitflow의 branch 종류

  • master : 최종 릴리즈한 안정화 버전
  • develop : 다음 릴리즈를 위해 개발중인 최신 버전
  • feature : 특정 기능 개발을 위한 branch
  • release : 릴리즈 점검을 위한 branch
  • hotfix : 긴급 버그 픽스를 위한 branch
  • support : 버전 호환성 문제 처리를 위한 branch

Feature

새 기능(feature) 시작하기

$ git flow feature start [branch name]
//git flow feature start myfeature

develop에 기반한 새로운 feature branch name을 생성되고, 자동으로 해당 branch로 checkout된다.
develop -> feature/myfeature

기능 완료

$ git flow feature finish [branch name]
// git flow feature start myfeature

develop branch로 checkout 한 후, myfeature branch를 develop에 merge하고 feature branch를 삭제한다.
feature/myfeature -> develop

  • Git-Jira의 Pull request 활용

기능 게시

$ git flow feature publish [branch name]

여러 개발자와 공동으로 개발하고 싶다면, 기능을 윈격 서버에 게시하면 된다.

기능 가져오기

$ git flow feature pull origin [branch name]

다른 사용자가 게시한 기능을 가져온다.

Branch 삭제

$ git branch -D [branch name]

해당 branch를 merge하지 않고 삭제된다.

Release

release branch 생성

$ git flow release start [branch name]

release start를 하면 develop branch에 기반한 release/[branch name]의 이름을 갖는 새로운 branch를 만들어서 checkout한다.
develop -> release/v0.0.1

release branch 완료

$ git flow release finish [branch name]

release branch의 코드를 master branch에 merge하고, release의 이름으로 태그를 등록한다.
release를 develop branch로 재병합(back-merge)하고, release branch를 삭제한다.

Hotfix

$ git flow hotfix
$ git flow hotfix start <release> [<base>]
$ git flow hotfix finish <release>
$ git flow feature publish <name>
$ git flow feature pull <remote> <name>

Git

git checkout -- src/ : 강제로 다 되돌리기
git checkout tags/"tag_name" : 태그 한 커밋으로 이동
git fetch origin --tags : origin의 모든 태그를 가져온다
git fetch origin refs/tags/"원하는태그" : 원하는 태그만 가져온다
git push origin --tags : 모든 태그 원격 저장소에 올리기
git init : git 생성하기
git clone "git_path" : 코드가져오기
git checkout "branch_name" : 브랜치 선택하기
git checkout -t "remote_path"/"branch_name" : 원격 브랜치 선택하기
git branch "branch_name" : 브랜치 생성하기
git branch -r : 원격 브랜치 목록보기
git branch -a : 로컬 브랜치 목록보기
git branch -m "branch_name" "change_branch_name" : 브랜치 이름 바꾸기
git branch -d "branch_name" : 브랜치 삭제하기
git push "remote_name" — delete "branch_name" : 원격 브랜치 삭제하기 (git push origin — delete gh-pages)
git add "file_path" : 수정한 코드 선택하기 (git add *)
git commit -m “commit_description” : 선택한 코드 설명 적기 (git commit -m “내용”)
git push romote_name branch_name : add하고 commit한 코드 git server에 보내기 (git push origin master)
git pull : git서버에서 최신 코드 받아와 merge 하기
git fetch : git서버에서 최신 코드 받아오기
git reset — hard HEAD^ : commit한 이전 코드 취소하기
git reset — soft HEAD^ : 코드는 살리고 commit만 취소하기
git reset — merge : merge 취소하기
git reset — hard HEAD && git pull : git 코드 강제로 모두 받아오기
git config — global user.name “user_name ” : git 계정Name 변경하기
git config — global user.email “user_email” : git 계정Mail변경하기
git stash / git stash save “description” : 작업코드 임시저장하고 브랜치 바꾸기
git stash pop : 마지막으로 임시저장한 작업코드 가져오기
git branch — set-upstream-to=remote_path/branch_name : git pull no tracking info 에러해결
git tag -d v1.0.0 : 태그 삭제하기
git push origin :v1.0.0 : 원격 저장소에 올라간 태그를 삭제하기 위해선 :를 사용하여 삭제할 수 있습니다.
git push --tags : 원격 저장소에 태그 푸시
git describe (--git-dir=../../../Software/.git) --always --abbrev=8 : git 태그와 해시코드 출력
git config --system core.longpaths true : filename too long 이라고 뜨면서 pull 안 될 경우, config를 바꿔준다.(git bash 관리자 권한 실행)
git config core.ignorecase false : filename, foldername 대소문자 구분 가능하도록 수정, 해당 옵션 적용 후 push 하면 대문자와 소문자 파일 따로따로 생김. (삭제하거나 이름 변경 등등에서 문제가 생길 가능성 생김, 파일 정리 필수)
git remote prune origin : git 원격 브랜치 삭제 했는데, vscode 등에서 남아있는 경우 사용하여 업데이트
git config user.name "Author": Git commit name 변경
git submodule init: Repository에 포함된 서브모듈 설정
git submodule update: 서브모듈 코드 업데이트

  • Bug debugging 시, 작성할 내용
    1. 현상
    2. 원인
    3. 수정사항
    4. 확인방법

0개의 댓글