[Day 28] Git(1)

Git (1)

Git Process and Command

  1. workspace

    • 작업영역에서 git init 을 하면 가상공간인 index(stage)와 local repository가 생성된다.

    • git add 를 통해 임시 공간인 index(stage)에 변경 사항을 저장해 놓는다.

  2. index(stage)

    • 변경된 부분만 stage에 올린다.
  3. local repository

    • git commit 을 통해 stage에 올려진 변경사항에 labeling을 해서 저장된다.

    • 모든 commit은 local repository에 저장된다.

  4. remote repository

    • git push 를 하면 github, gitlab, bitbucket 등의 원격 저장소에 저장된다.

Git Process and Command

Git 시작하기

  • workspace folder name과 remote repository name은 똑같이 맞춰주는게 헷갈리지 않고 좋다.

  • Git 환경설정

    • 설정 목록 보기
      • git config --list
    • 기본 에디터 설정
      • git config --global core.editor "vim"

.gitignore

  • Git이 볼 필요가 없는 파일을 정리해둔다.
  • Node 에서 주로 사용된다. (node_modules 폴더를 git에 올릴 필요가 없기 때문에)

Commit

  • 커밋은 각 작업(또는 파일) 별로 나눠서 하는 것이 좋다. (버전관리를 위해)
  • 커밋메시지는 첫 줄에 제목, 이후 문장 형태로 설명해주는 것이 좋다.

Branch

  • 분기점을 생성하고 독립적으로 코드를 변경할 수 있도록 도와주는 모델
  • 브랜치 확인
    • git branch
    • git branch -r
    • git branch -a
  • 브랜치 생성
    • git branch stem (stem은 새로 만들 브랜치 이름)
  • checkout
    • git checkout stem
    • 시간/공간 이동 : 내가 원하는 시점의 브랜치 또는 위치로 가기
    • 과거의 특정 시점으로 이동하고 싶다면 commit id를 github에서 복사해온 다음에 git checkout + commit id (다만, 새로운 브랜치를 따서 수행해야 한다)
    • git checkout -b new-stem
      • 새로운 브랜치를 만들면서 동시에 그곳으로 이동한다.
  • merge
    • git merge stem
      • 합쳐질 위치에서 가져올 브랜치 이름을 머지해준다.
  • 브랜치 삭제
    • git branch -D stem
  • 브랜치 푸쉬
    • git push origin stem
  • 두 브랜치 간의 차이 보기
    • git diff master stem
    • remote repo -> Insights -> Network 에 가면 전체 브랜치 가지 모양을 확인할 수 있다.

Git Flow Strategy

  • Hotfix : 긴급하게 master branch에 수정이 필요할 때 쓰는 브랜치
  • Realease : master 로 최종적으로 보내지기 전에 후처리를 하는 브랜치
  • Develop : 개발자들이 실제 개발용으로 쓰기 위해 master branch에서 따온 브랜치
  • Feature : 개발자들이 Develop branch에서 따와서 실제로 기능 개발을 진행하는 브랜치

Merge Conflict

  • git merge branchname 할 때 merge conflict가 발생한다면
    • 해당 파일에 들어가면 conflict가 발생한 부분이 둘 다 적혀 있다.
    • 이 중 선택해서 합치거나 수정한다.

Collaboration

  1. 레포 만들기 -> master, develop(무언가 일을 한 뒤 푸시 해야 리모트가 알 수 있다.)
  2. 상대방 레포 방문한 뒤, 포크 -> 클론
    • 포크, 클론 한 local workspace에 branch가 일부 안생겼다면 local에서 강제로 branch를 딴 뒤 remote branch를 pull 해오면 내용이 똑같아 진다.
    • git pull origin develop
  3. 디벨롭에서 피처 브랜치를 따서 작업하기 -> 푸시(피처) -> (디벨롭)에서 (피처)를 머지 -> 푸시(디벨롭)
  4. 깃헙 -> 디벨롭 => 디벨롭 -> 풀 리퀘스트 만들기
  5. 그 저장소로 이동해서 간단한 내용에 대한 코멘트 남기기
  6. 원작자가 풀리퀘스트를 머지한다.

태그:

업데이트:

댓글남기기