본문 바로가기

Github Flow github-flow는 git-flow의 사용법이 복잡하여 단순화한 모델이다. github-flow는 크게 마스터 브랜치만을 유지하며 별도의 작업이 필요할때는 서브 브랜치를 이용하여 작업을 진행한다. master 브랜치는 항상 유지되는 브랜치 이며, 이 브랜치에는 항상 사용가능한, 배포 가능한 상태의 버전의 소스코드가 유지되어야 한다. 즉 작업들은 모두 서브 브랜치에서 끝나야 하며, 끝나지 않은 작업은 마스터로 머지 하면 안된다. git에서는 PR을 사용하라고 권장한다. 예시 1. master 생성 2. feature 생성 이제 특정한 작업 feature1를 수행하기 위해 브랜치를 하나 만든다. 아래 사진은 브랜치 생성 후 작업이 완료된 feature1 브랜치의 모습이다. 3. master로 머지 이제 .. 더보기
나의 git 프로젝트 관리 지금까진 개발을 할때 코딩에 들어가는 시간이 8할, 나머지 작업(설계 및 관리)에 들어가는 시간이 2할 정도였던것 같다. 하지만 이제와서 보니 오히려 반대가 되어야 하는게 아닌가... 하는 생각이 든다. 그동안 프로젝트들을 진행하다 보면 시간에 쫓겨 로그들을 제대로 남기지 않고 진행하는 경우가 많았다. 그렇게 어찌저찌 프로젝트를 진행하다 가끔 과거의 기록들이 필요한 경우들이 생기게 되고, 아래와 같은 커밋 로그를 확인할때마다 정말 답이 안나온다.. 이렇게 개발된 코드들은 나중 관리 측면에서도 너무 안좋았다. 특히 이전 버전으로 롤백해야 하는 경우 어디로 포인트를 잡아야 할지 찾을수가 없다. 이젠 프로젝트 관리 규칙을 만들어 최대한 그 규칙을 따르며, 개발을 하고자 하는 마음에 이렇게 한번 정리를 한다. .. 더보기
Git Flow https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow Gitflow Workflow | Atlassian Git Tutorial A deep dive into the Gitflow Workflow. Learn if this Git workflow is right for you and your team with this comprehensive tutorial. www.atlassian.com 1. branch 종류 설명 여기서 말한 브랜치들은 특정 브랜치 하나를 의미하는게 아닌 브랜치들의 라이프 사이클을 의미합니다. master브랜치와, develop브랜치는 하나로 고정이지만 release, hotfix, feature .. 더보기
Git PR 관리 PR이란? Pull Request란 내가 변경한 내용을 다른 브랜치로 머지하고자 할때, “내 변경을 받아주세요” 와 같은 요청이다. PR 생성 PR은 github Pull Request 탭에서 생성할 수 있으며, 생성시 ID가 붙게 된다. PR Merge 생성된 PR은 타겟 브랜치로 머지할 수 있게 되는데, 이때 변경된 내용에 따라 다음과 같은 상황이 일어나게 된다. 1. 자동 Merge 첫번째 시나리오로써 내가 변경한 내용과, Merge 하려는 타겟 브랜치와 충돌이 없거나, 자동으로 해결 가능한 충돌일때는 자동으로 merge가 된다. 이때는 PR에서 바로 Merge할 수 있는 버튼이 나타나게 된다. 이때는 Merge Pull Request를 눌러 Target Branch로 머지가 가능하다. 2. 수동 .. 더보기
Git CLI Reference 자세한 CLI 사용법은 아래 링크를 참조. Git - Reference Reference git-scm.com git init ex) git init 현재 디렉토리에 .git 이라는 하위 디렉토리를 만든다. .git디렉토리에는 뼈대파일이 들어있고, 이상태에서는 아직 git이 아무 파일도 관리하지 않는다. git clone ex) git clone 저장소를 clone 하고 해당 디렉토리에 하위 git 디렉토리를 만들게 된다. git clone [dir_name] 같은 repository를 [dir_name] 으로 클로닝 한다 git status ex) git status [OPTIONS] 현재 git 상태를 확인한다. [OPTIONS] -s , –short : 간단하게 보여준다 플래그 왼쪽 : Stagin.. 더보기
Git Branch 와 Merge branch branch란 독립적으로 작업을 하는 하나의 가지 라고 생각하면 된다. 내가 작업을 하는데 같은 프로젝트에 누군가도 같이 작업을 해야하는 상황에서 둘이 서로에게 영향을 주고 받지 않게 하기 위해 각자의 브랜치 위에서 작업을 마친 뒤 한꺼번에 merge 한다. 가장 흔한 모습은 master branch에서 가지를 치고 작업이 끝나면 merge를 하는 형태이다. 알고가야 할것 git branch 브랜치를 만드는 명령이다. 새로 만든 브랜치는 지금 작업하고있던 마지막 commit을 가르킨다. head 포인터 지금 작업중인 브랜치가 무엇인지 git은 어떻게 파악할까? 바로 head라는 특수 포인터가 있다. 이 포인터는 지금 작업하는 로컬 브랜치를 가르킨다. git checkout 브랜치를 이동하는 .. 더보기
Git 기초 사용법 Git Repository 만들기 1. 디렉토리를 git 저장소로 만들기 특정 프로젝트(버전관리를 하지 않은)를 git으로 관리하고 싶은 경우 프로젝트의 디렉토리로 이동한다. 프로젝트의 디렉토리로 이동한 다음 다음 명령을 실행한다 git init 이 명령은 .git이라는 하위 디렉토리를 만든다. .git 디렉토리에는 저장소에 필요한 뼈대파일이 들어있다. 하지만 아직 이 명령만으로는 프로젝트의 어떤 파일도 관리하지 않는다. git이 파일을 관리하게 하려면 저장소에 파일을 추가하고 커밋해야 한다. 이후 github 또는 gitlab에 push 할려면 리모트 저장소를 지정해 줘야한다. 쉽게말해 어디다 올려야 할지 정해야 한다. ` git romte add origin ` git remote add origin.. 더보기
Git 시작하기 git 설치 공식 홈페이지에서 dmg 파일 설치 터미널을 이용해 설치 git 최초설정 git config 라는 도구로 설정 내용을 확인, 변경할 수 있고 git은 이 설정에 따라 동작한다. 이떄 사용하는 설정파일은 세가지다 /etc/gitconfig 파일: 시스템의 모든 사용자와 모든 저장소에 적용되는 설정이다. git config —-system 옵션으로 이 파일을 읽고 쓸 수 있다. (이 파일은 시스템 전체 설정파일이기 때문에 수정하려면 시스템의 관리자 권한이 필요하다.) 전체 시스템 ~/.gitconfig, ~/.config/git/config 파일: 특정 사용자(즉 현재 사용자)에게만 적용되는 설정이다. git config —global 옵션으로 이 파일을 읽고 쓸 수 있다. 특정 사용자의 모든 .. 더보기
Git 기본 개념 Git이란?? Git은 분산 버전 관리 시스템 으로 각소스의 버전들을 로컬, 서버등 다양한 곳에 분산하여 저장한다. 떄문에 한곳에서 장애가 일어나더라도 빠르게 복구할 수 있는 장점이 있다. 버전 관리 파일의 변화를 기록해 나중에 특정 시점의 버전을 볼 수 있는 시스템이다. 버전관리 시스템VCS(Version Control System)을 사용한다. VCS로 각 파일을 이전 상태로 되돌릴 수 있고, 프로젝트를 통째로 되돌릴 수 있고 시간에 따른 수정 내용을 비교해 볼 수 있다. 분산 버전 관리 DVCS 에서 클라이언트는 단순히 마지막 버전을 사용하지 않고 저장소를 히스토리와 더불어 전부 복제한다. 만약 서버에 문제가 생가면 복제물로 다시 작업을 시작할 수 있다. Clone 는 모든 데이터를 가진 진정한 백.. 더보기