[8주차] Git (1)

이철민·2023년 3월 16일
0

[ Git ]

  • 버전관리(형상관리) 시스템
  • 협업, 작업추적, 복구 등이 가능

[ Git 허브 ]

[ Git 기본 용어]

  • Repository: 소스코드가 저장되어 있는 여러 개의 Branch 가 모여있는 디스크상의 물리적 공간
    • Local Repository 와 Remote Repository 로 구분
  • Checkout: 특정 시점이나 Branch 의 소스코드로 이동하는 것을 의미
    • Checkout 대상 - Branch, Commit, Tag
    • Checkout 을 통해 과거 여러 시점의 코드로 이동이 가능
  • Stage: 작업할 내용이 올라가는 임시저장영역
    • 이 영역을 이용하여 작업한 내용중 commit 에 반영할 파일만 선별하여 commit 을 수행할 수 있음
  • Commit: 작업할 내용을 Local Repository 에 저장하는 과정
    • 각각의 commit 은 의미있는 변경단위이고, 변경에 대한 설명을 commit log 로 남김
  • Tag: 임의의 commit 위치에 쉽게 찾아갈 수 있도록 붙여놓은 이정표
    • Tag 가 붙은 commit 은 commit id (version) 대신 tag name 으로 쉽게 checkout 가능
  • Push: Local Repository 의 내용 중, Remote Repository 에 반영되지 않은 commit 을
    Remote Repository 로 보내는 과정
  • Pull: Remote Repository 에 있는 내용 중, Local Repository 에 반영되지 않은 내용을 가져와서
    Local Repository 에 저장하는 과정
    • Push 과정에서 Conflict (충돌)이 일어나서 Push 가 거절된 경우,
      Pull 을 통해 Remote Repository 의 변경 내용을 Local Repository 에 반영하여 Conflict 를 해결 한뒤
      다시 Push 를 시도해야 함.
  • Branch: 특정 시점 (commit 단위) 에서 분기하여 새로운 commit 을 쌓을수 있는 가지를 만드는 것
    • 개발의 주축이 되는 branch 를 master branch (혹은 main branch) 라고 함
    • 모든 branch 는 최종적으로 다시 master branch 에 merge (병합) 되는 형식으로 진행 됨
  • Merge: Branch 의 반대개념으로 하나의 Branch 를 다른 Branch 와 합치는 과정
    • ge 되는 두 Branch 는 주종관계가 성립. 예 - dev branch 를 main branch 에 merge
    • Merge 되는 과정에서 Confict (충돌) 이 발생하는 경우
      Diff 를 수정하여 Conflict 를 해결한 뒤 Merge 를 진행 할 수 있음

[ Local Repository ]

  • Workspace 생성
cd Documents
mkdir git_ws
  • Working Directory 생성
cd git_ws
mkdir test_project
  • Git itnit : 폴더에서 Git 을 초기화하는 명령어를 사용하면 해당 폴더를 Git 이 관리하기 시작
cd test_project
Git init
  • 파일 생성: Working Directory에 파일 생성
touch test.txt
  • Git Status: Git에 존재하는 파일 확인
git status
  • Git Add: Working Directory 에서 변경된 파일을 Index (stage)에 추가
git add test.txt
git status
  • Git Commit: Index (stage) 에 추가된 변경사항을 HEAD 에 반영 (확정)
git commit -m "first commit" test.txt

[ Remote Repository ]

Git remote -v
  • Remote Repository에 변경내용 Push하기
    • Local Repository (HEAD) 에 반영된 변경내용을
      Remote Repository 에도 반영하기 위해서는 Git Push 를 사용
git push origin main (master)
  • Local Repositorydp Pull 하기
    • Remote Repository 의 내용에 맞춰 Local Repository 를 갱신하려면 Git Pull 사용
git pull origin main (master)

[ Branch ]

  • 조회
# git branch 
local branch만 검색 가능. Remote repository로 push해야 remote repository에서도 조회 가능.
 
# git branch -r
remote branch 검색 가능 

# git branch -a 
local, remote branch 모두 검색 가능 
  • 생성
git branch 이름
  • 이동
git checkout 이름
  • 생성 + 이동
git checkout -b 이름
  • Local에서 생성한 branch -> Remote
git push origin 이름
  • Local branch 삭제
git branch -d 이름

# 단, 현재 머물고 있는 브랜치는 삭제 불가.
  • Remote branch 삭제
git push origin --delete 이름
profile
늘 온 마음을 다해 :)

0개의 댓글