GIT이란?
Git이란 souce 관리를 위한 분산 버전 관리 시스템이다. 로 리눅스 토발즈가 리눅스 커널 개발에 이용하려고 개발했다.
깃 브랜치 전략 GIT-FLOW
각 개발자는 원본으로부터 가져와서 작업하고 푸쉬한다. 다른 동료의 변경 사항을 가져와서 새로 구성할 수도 있다.
유형별 분기
- 기능 분기
- 릴리스 분기
- 핫픽스 분기
분기 명명 규칙
master
, develop
, release-*
, 또는hotfix-*
기능 브랜치 생성
새로운 기능에 대한 작업을 시작할 때 분기에서 develop분기 합니다.
$ git checkout -b myfeature develop
새 브랜치 "myfeature"로 전환
완성한 기능을 개발에 통합하기
완성 된 기능은 develop다음 릴리스에 확실히 추가하기 위해 브랜치에 병합 될 수 있습니다.
$ git checkout develop
브랜치 'develop'으로 전환
$ git merge --no-ff myfeature ea1b82a..05e9557
업데이트
(변경 사항 요약)
$ git branch -d myfeature
브랜치 myfeature 삭제 (이전 05e9557).
$ git push origin develop
--no-ff
-no-ff플래그는 병합이 빨리 감기를 수행 할 수있는 경우에도, 항상 새로운 객체를 커밋 만들 병합됩니다. 이렇게하면 기능 분기의 과거 존재에 대한 정보가 손실되는 것을 방지하고 기능을 추가 한 모든 커밋을 함께 그룹화합니다.
Master
master브랜치는 origin모든 Git 사용자에게 익숙해야합니다. master분기와 병렬로 라는 또 다른 분기가 있습니다 develop. origin/master는 소스 코드가 HEAD항상 프로덕션 준비 상태를 반영하는 주요 분기로 간주 합니다.
Develop
origin/develop는 소스 코드가 HEAD항상 다음 릴리스를 위해 제공되는 최신 개발 변경 사항이있는 상태를 반영하는 주요 분기로 간주 합니다. 일부는 이것을 "통합 분기"라고 부릅니다. 자동 야간 빌드가 생성되는 곳입니다.
develop브랜치 의 소스 코드 가 안정된 지점에 도달하고 릴리스 할 준비가되면 모든 변경 사항을 master 어떻게 든 병합 한 다음 릴리스 번호로 태그를 지정해야합니다. 이것이 어떻게 수행되는지 자세히 설명합니다.
변경 사항이에 다시 병합 될 때마다 master이것은 정의에 따라 새로운 프로덕션 릴리스 입니다. 우리는 이에 대해 매우 엄격한 경향이 있으므로 이론적으로 Git 후크 스크립트를 사용하여 .NET에 커밋이있을 때마다 소프트웨어를 자동으로 빌드하고 프로덕션 서버에 배포 할 수 master있습니다.
- 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 에러해결