가져오기

  1. Git Clone
  2. Branch 설정

배포

  1. Git Flow

    [로컬 환경 서버]

    1. READMD.md에 릴리즈 항목 추가
    2. git add .
    3. git commit -m "[수정] 수정사항 기재"
    4. git push
    5. git tag 2.1.신규버전_NUMBER → Local 환경에 Tag를 생성. 만약 Tag를 재생성한다면, 로컬 태그를 꼭 삭제해야 한다. git tag -d 2.1.5
    6. git push origin 2.1.신규버전_NUMBER → 로컬에 생성한 Tag를 원격에도 적용
    7. git commit -m "[버전] 2.1.신규버전 → 2.1.미래버전"

    [21번 환경 서버]

    1. git checkout config/config.json → Conflict를 막기 위한 조치
    2. git pull
    3. git checkout 2.1.5
    4. cp -rf config/config.json~ config/config.json
    5. pm2 restart studio_app
  2. 게시판에 릴리즈 작성

  3. Git 원격지 Commi 삭제(취소)

    1. 로컬
    1. 원격지

Git 기초지식

  1. Repository :
  2. Branch : 독립된 작업을 진행하기 위한 작업 공간의 개념
    1. 통합 브랜치(Integration Branch)
      1. Repository 생성 시 최초 생성되는 master 브랜치를 말한다.
      2. 언제든지 배포할 수 있는 버전을 만들 수 있는 브랜치
    2. 피처 브랜치(Feature or Topic Branch)
      1. 기능 추가나, 버그 수정과 같은 단위 작업을 위한 브랜치
      2. 보통 통합 브랜치(master)로부터 피처 브랜치를 생성하고, 작업이 완료되면 통합 브랜치에 병합(Merge)하는 방식으로 진행된다.
  3. 명령어
    1. clone : git remote 서버에 저장된 Repository(repo)를 내 local로 다운로드 받는 명렁어

    2. pull : 리모트 서버의 최신 소스를 가져와서 로컬 소스에 병합(Merge)해주는 명령어

    3. commit : "작업 트리(Workt tree)"에 있는 변경 내용을 바로 Remote Repository에 반영하는 것이 아니라, Remote Repository와 Local Repository 사이에 있는 Staging Repository에 파일 상태를 기록하게 되어 있다.

    4. push : Index 영역에 기록된 내용을 Remote Repository에 반영하는 명령어

    5. merge :

      내가 pull을 실행 후 동료 개발자가 push한 경우 현재 나의 Local Repository는 최신 데이터가 아니다. 그렇기 때문에 동료 개발자가 push한 commit를 내가 Local Repository에 적용한 후에 내가 변경한 소스를 commit 및 push 할 수 있다.

      이럴 때 사용하는 것이 merge(병합)이다. merge를 통해서 동료 개발자의 업데이터 이력(신규 commit)을 내 로컬 레파지토리에 적용한다.

    6. collision(충돌) :

      Remote Repo와 Local Repo 양쪽에서 특정 파일의 동일한 부분을 변경한 경우 merge 시 collision(충돌)이 발생한다.

저장소 미러링하기

  1. 터미널을 엽니다.

  2. 복사하고자 하는 저장소(gitlab)의 bare clone을 생성합니다.

    git clone --bare <https://[email protected]/Solution-Dev1/enamoo/enamooS4self-php56.git>

  3. 새로운 저장소(github)로 mirror-push를 진행합니다.

    cd old-repository.git git push --mirror <https://github.com/exampleuser/new-repository.git>

  4. 1번과정에서 클론된 저장소를 지웁니다.(선택)