[Git & Github 입문2] Today I Learned

Dongchan Alex Kim·2023년 1월 21일
0

git&github INTRODUCTION

목록 보기
2/3
post-thumbnail

날짜 : 2023년 1월 21일 토요일

📌 PLAN (~2/5)

  • 웹개발 종합반 강의 2회독 완료 → Velog 기술 블로그 정리까지 (2주차/총 5주차) (~1월/25일)
  • GIT & GITHUB 이해 및 사용법 숙달(2회 완료/총 5회)
  • 코딩테스트 맛보기(Aft)
  • 토이프로젝트 맛보기(Aft)

📌 WHAT TODAY?

GIT & GITHUB 'Intermediate'
GIT-DAY 2 : GIT의 기능 마스터하기!
공부할 책: Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문

  1. Branch가 필요한 이유
  • 고객사마다 디렉터리를 복사하면 출시 전까지 만들었던 내용은 동일하기 때문에 자료가 중복됨.
  • 또 버전 관리 시스템의 장점인 파일이름 명료화를, 고객사마다 따로 붙여서 정리해야하는 문제가 발생
  • 그래서 독립적으로 작업을 진행하기 위한 개념이 Branch.
    (필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치의 영향을 받지 않음. 여러 작업 동시에 진행)
  • 기존 파일은 main브랜치에 그대로 유지하면서, 새 브랜치에서 기존 내용을 수정하거나, 새로운 기능을 추가할 수 있다.
    - Main 브랜치에서 새 브랜치를 만드는 것을 분기(Branch)라 한다.
    - 새 Branch에서 원한 작업이 다 끝났다면, 새 브랜치에 있던 파일을 원래 main branch에 합치는 걸 Merge(병합)이라 한다.
$ git commit -am "메세지를 입력하세요" 
#이미 커밋 한번한 문서는 스테이징 과정없이 -am 옵션으로 바로 재커밋이 가능하다
$ git log --oneline --branches -- graph
#브랜치별 커밋사항들을 한줄로 파악할 수 있는 명령어
$ git log master..apple
#master브랜치와 apple브랜치 사이의 차이점 파악
$ git switch o2
#"o2"브랜치로 전환(이동)
$ git merge o2
#스위치한 브랜치 기준으로 "o2"브랜치를 가져와 병합
#"Merge branch o2"커밋 메세지 생성 -> 병합 브랜치(master) 생성
  • 서로 다른 브랜치에서 한 문서의 다른 부분을 수정했을 때 병합하기
    - 각각의 수정내용이 자연스럽게 자동으로 하나의 파일로 합쳐진다.
  • 서로 다른 브랜치에서 한 문서의 같은 부분을 수정했을 때 병합하기
    - 경고 메세지 발생 → 충돌이 생긴 문서는 자동 병합 불가능
    - 재수정 후 재커밋해야함!!
$ git commit -am "merge o2 branch"
  • 병합이 끝난 브랜치 삭제하기
    - 삭제한 브랜치는 같은 이름으로 다시 브랜치를 만들 예전에 작업했던 내용이 그대로 나타남
    - 브랜치를 삭제한다는 것은, 저장소에서 완전히 없애는 것이 아닌 git의 흐름 속에서 감추는 것!
$ git branch -d o2
#병합하지 않은 브랜치를 삭제시, 오류 발생할 수도 있음.
#이 떄는 -d가 아니라, -D를 사용하면 병합하지 않은 브랜치도 강제로 삭제할 수 있음.
  • Cherry-pick으로 병합하기
    - cherry-pick은 master브랜치와 topic브랜치를 합치긴 하는데, 전체를 합치는 게 아니라, topic브랜치 중 특정 버전의 변경 내용만 합치려고 할 때 사용하는 기능이다.

    터미널에서는 세미콜론(;)으로 구분해서 여러 개의 명령을 한꺼번에 처리할 수 있음.
$ touch init.txt; git add init.txt; git commit -m "init"
#init.txt파일을 만들고 -> init.txt파일을 스테이징하고, -> init 메세지와 함께 커밋한다.
$ git switch master
#항상 병합될 브랜치로 먼저 전환(브랜치 이동)을 먼저 해준다.
$ git cherry-pick "체리픽할 해시 복붙"
#cherry-pick할 해시 복붙하면 명령이 이루어진다. 

git 마스터했다! 끝!

다음은 github에 대해 공부 해볼까

profile
Disciplined, Be systemic

0개의 댓글