21.2.2

0

위코드 사전스터디

목록 보기
28/36

<누구나 쉽게 이해할 수 있는 GIT 입문 읽고 모르는 것 정리>
누구나 쉽게 이해할 수 있는 Git 입문 링크

  1. git clone 과 git pull 차이
  • 공통점 : 리모트에서 로컬로 가져오는 것
  • 차이점 : clone은 아무 것도 없는 상태에서 가져오는 것. pull은 로컬에 이미 있는데 원격 저장소의 수정 상태를 반영하기 위해 하는 것.
  1. 만일 로컬에서 작업하던 것이 리모트 작업되어 있는 것과 다르다면? -> 먼저 로컬에 리모트 자료를 가져온 다음 날짜가 더 늦은 로컬 작업 영역에 병합한다.
  • 변경한 부분이 충돌한다면 직접 수정 후 커밋해줘야 한다.
  1. 브랜치를 용도에 맞게 만들어야 한다.
  • 통합 브랜치 : 언제든지 배포 할 수 있는 버전의 안정적인 브랜치
  • 토픽 브랜치 : 기능 추가나 버그 수정 같은 작은 단위 브랜치. 추후 통합 브랜치로 병합
  1. stash : 브랜치를 체크아웃할 때 아직 커밋하지 않은 내용을 잠시 저장해두는 영역. 하지 않을 경우 그 내용이 체크아웃한 곳으로 이동할 수 있으며 체크아웃이 실패할 수도 있음.

  2. fast-forwad : 빨리감기 병합. master 브랜치와 만든 브랜치가 같은 것을 공유하고 있어 바로 병합.
    fast-forward

  3. rebase는 이력이 단순해져버려서 정확한 이력을 남겨야할 경우 보기 어려워질 수 있어서 신중히 선택하여야 함. 이에 비해 merge가 훨씬 복잡한 이력을 확인하기 수월하다.(일렬로만 세우냐, 아님 최종 목적지를 두고 합해지냐 차이)

  • 이력을 바로 최신 통합 브랜치에 붙여서 가는 경우는 오히려 rebase가 간편할 순 있다.
    rebase사례
  1. 깃 브랜치 생성과 체크아웃 한 번에 하는 법 :
git checkout -b <branch>
  1. 전에 올렸던 블로그 내용 중 master가 가지를 친 것이라 생각하여 rebase하려고 했던 내용은 그 내용이 아니라 리모트 내용을 로컬로 가져왔을 때 master 브랜치로 pull 되어서 소스가 병합된 내용이었다.
* e5d40e3 (HEAD -> master, origin/master, origin/HEAD) Revert "work6.5"
*   be72a96 Merge branch 'master' into HEAD
|\  
| * 24c2719 work6.5
| * 34a7914 work5.5
* | 498f06a work5.5
|/  
* 43eeae5 work4
* c7a4c30 Revert "work3"
* 3e9aa63 work3
* e5977c5 work2
* e683b03 work1

여기서 pull을 하기 싫으면 (master와 따로 가고 싶다면) FETCH_HEAD해주면 된다.

  1. 태그 : 커밋을 참조하기 쉽도록 이름 붙이는 것
git tag ~
  • 일반태그 : 이름만 붙음
  • 주석태그 : 이름+설명+서명+기타..
    주석 달기
  1. 커밋 변경하기
  • --amend : 같은 브랜치 상의 이전에 커밋했던 내용에 대해 새로운 내용을 추가하거나 설명을 수정.
  • cherry-pick : 다른 브랜치 상의 지정한 커밋을 복사하여 현재 브랜치로 가져오기
  • --squash : 병합시 사용. 다른 브랜치 커밋 내용을 합한 것을 현재 브랜치로 가져와서 병합하는 것.(약간 rebase 비슷.)
profile
커피 내리고 향 맡는거 좋아해요. 이것 저것 공부합니다.

0개의 댓글