[Git] 내가 보려고 만든 Git-flow기반 브랜치 전략 및 컨벤션
·
Git
Git-flow기반 브랜치 전략 및 컨벤션브랜치 컨벤션1. Master Branch (master)역할: 실제 제품으로 출시되는 안정된 버전이 배포되는 브랜치. 규칙master 브랜치에 직접 커밋을 하지 않습니다.규칙:오직 release 브랜치 또는 hotfix 브랜치를 병합(Merge)할 때만 업데이트됩니다.병합 대상: release, hotfix2. Develop Branch (develop)역할: 다음 출시 버전을 개발하는 메인 개발 브랜치.규칙기능 개발이 완료된 후, feature 브랜치가 develop에 병합됩니다.develop에서 release 브랜치가 생성됩니다.병합 대상: feature, release3. Feature Branch (feature/feature-name)역할: 새로운 기능..
[Git] Git-flow
·
Git
Git-flowGit-flow는 Vincent Driessen가 블로그 글( A successful Git branching model )에서 제안한 branching model을 적용하여 소프트웨어의 소스코드를 관리하고 출시하기 위한 '브랜칭 관리 전략branch management strategy’이다.  Vincent의 branching model은 브랜치를 'master - develop-feature - release - hotfix' 5단계로 나눠서 코드를 관리하는 전략이며 항상 유지되는 메인 브랜치들(master, develop)와 일정 기간 동안만 유지되는 보조 브랜치들(feature, release, hotfix)이 있다.master : 기본 브랜치, 제품으로 출시(배포)될 수 있는 브랜..
[Git] 깃(Git)의 원리(4, 충돌과 충돌 해결)와 Git flow
·
Git
깃의 충돌(confilct)깃을 사용하다 보면 많은 사람들이 끊임없이 브랜치를 만들고 병합하고 삭제하기를 반복하면서 개발을 해나간다. 원격 저장소를 사용 한다면 다른 사람이 작업한 내용과 병합하는 작업을 하다보면 오만가지 형태의 충돌이 발생하게 된다.// 기존 master 브랜치의 f1.txt파일function(){ return 'common';}하나의 파일(f1.txt)을 가지고 있는 브랜치(master)에서 새로운 브랜치(exp)를 생성하여 파일의 내용을 수정한 뒤 master 브랜치에서 exp을 병합해 보자$ git checkout -b exp// exp 브랜치의 f1.txt파일function(){ return 'exp';}$ git checkout master// mast..
[Git] 깃(Git)의 원리(3, Branch 정리)와 브랜치 병합(Merge / rebase)
·
Git
브랜치(Branch)란?소프트웨어를 개발할 때 개발자들은 동일한 소스코드를 공유하고 다루게 된다. 동일한 소스코드 기반으로 여러 사람이 서로 다른 작업을 하게 된다면 서로 다른 버전의 코드가 만들어지게 되는데 이럴 때 여러 개발자들이 동시에 다양한 작업을 할 수 있게 만들어 주는 기능인 브랜치를 사용한다.기존 소스 코드에 새로운 기능을 만들어 새 버전을 만들더라도 기능이 오류 없이 완벽하게 동작한다는 보장이 없고 오히려 기존에 잘 작동되던 기능도 동작하지 않을 가능성도 있다. 깃에서 브랜치는 여러 작업을 각각 독립된 공간에서 진행할 수 있도록 하는 기능이다.하나의 브랜치는 각자의 독립적인  워크스페이스, 인덱스, 로컬 레포지토리, 리모트 레포지토리 공간을 가져 다른 브랜치의 영향을 받지 않고 소스 코드와..
[Git] 커밋 취소/되돌리기/덮어쓰기(reset / revert / amend)
·
Git
커밋 취소하기git resetgit reset 명령어는 현재 커밋한 내역을 특정 시점으로 되돌리고 싶을 때 사용하는 명령어이다. 옵션에 따라 취소, 삭제되는 대상이 달라지기 때문에 상황에 따라 적절한 옵션을 선택하여 사용해야 한다. 자주 사용되는 옵션으로 hard, mixed, soft가 있다.git reset --softreset --soft 옵션을 사용하면 현재 브랜치가 가리키는 커밋을 바꾼다. git commit --soft "커밋 아이디"Index나 워킹 디렉토리는 그대로 놔두고 브랜치가 가리키는 커밋만 이전으로 되돌린다.  HEAD는 계속 현재 브랜치를 가리키고 있기 때문에 HEAD 브랜치를 이동시키는 것과 같다. (저장소만 삭제(HEAD))reset 명령에 커밋을 넘기고 실행하면 언제나 이런 ..
[Git] 태그(tag)의 기초와 사용법
·
Git
태그(tag)란?태그는 깃에서 무언가를 표기해 두기 위해 특정 객체를 가리키는 역할을 하며 보통 릴리즈 버전 등 소스코드의 특별한 버전을 기록하는 데에 많이 사용된다.commit dd8a420c12ca0a5206456399cfa4cfe38acce650 (HEAD -> master, tag: 1.1.3)커밋 이이디를 적는 대신에 태그명을 통해 간결하고 가독성 있게 시용할 수 있다.$ git checkout 1.1.3// 기존 : $ git checkout dd8a420c12ca0a5206456399cfa4cfe38acce650태그는 checkout을 통해 수정이 불가능하여 읽기만 가능하다. 하지만 커밋은 내용을 수정이 가능하다는 차이가 있다.사용자들에게 제공되는 버전을 처음 릴리즈할 때 태그(1.0.0)를..
PP_D
'Git' 카테고리의 글 목록