본문 바로가기

메타버스 1기

4/18 버전 관리 시스템과 Git 명령어, 연습

버전 관리 시스템

: 파일의 변화를 기록하여 추후 특정 버전으로 불러올 수 있는 시스템 (백업 및 관리 느낌)

 크게 로컬 / 중앙집중형 / 분산형 으로 나눌 수 있다

  • 로컬 : 내 컴퓨터에서만 버전 관리
  • 중앙집중형 : 서버에서만 버전 관리
  • 분산형 : 내 컴퓨터 + 서버에서 버전관리

우리가 배울 Git분산형 버전 관리 시스템이다

 

Git

Git은 스냅샷을 이용해서 버전을 관리하며 committed / nodified / staged 세가지 상태로 관리한다

  • committed : 버전 관리를 한 상태
  • modified : 수정이 일어난 상태
  • staged : 커밋하겠다고 한 상태

git의 작업 흐름

특정 버전을 체크아웃 - 파일 수정 - 스테이징하고 커밋

 

 

Git 배우기 주소

https://learngitbranching.js.org/?locale=ko

 

Learn Git Branching

An interactive Git visualization tool to educate and challenge!

learngitbranching.js.org

 

명령어

git commit : 커밋 하는 것

git branch : 브랜치를 만드는 것

  • branch : 특정 커밋에 대한 참조
  • -f : 브랜치를 강제로 옮기는 것

git checkout : 특정 버전(커밋)을 불러오는 것

  • -b : 브랜치를 만들고 checkout

git merge : 서로 다른 두개의 커밋을 합쳐서 새로운 커밋을 '생성'하는것

merge는 이으려는 브랜치에 HEAD를 두고 merge (가져오려는 브랜치) 를 해야한다.

 

git rebase : 커밋을 복사해 다른 커밋으로 붙여넣는 것

  • -i : 인터랙티브 리베이스

rebase는 옮기려는 브랜치에 HEAD를 두고 가져가려는 곳에 rebase (가져가려는 곳의 브랜치) 해야한다.

 

git reset : 이전으로 되돌아가는 것

              지우려는 곳 HEAD를 두고 reset HEAD~1(올라가려는 부모만큼)
git revert : 특정 커밋의 반대되는 새로운 커밋을 만드는 것

               새로운 커밋을 만드려는 부모 커밋에 HEAD를 두고 git revert 

git cherry-pick : 원하는 커밋을 복사해서 붙여넣는 것

상대 참조 (relative reference)

HEAD : 현재 작업 중인 버전

^ : 특정 커밋의 부모

     ^2 , ^3 : 특정 커밋의 두번째 부모, 세번째 부모를 뜻함

~ : 특정 커밋으로부터 어떤 수만큼 떨어진 부모

git tag : 특정 커밋에 어떤 내용을 남기는 것

 

 

원격 저장소

git clone : 원격 저장소를 복제하는 것

git fetch : 원격 저장소의 내용을 로컬로 가져오는 것

  1. 로컬에 없는 커밋을 다운로드 하거나
  2. 원격 브랜치를 업데이트 함 
    원격 브랜치 : 원격 저장소의 브랜치를 추적

git pull : git fetch + git merge 를 한번에 시행하는 명령어

git push : 로컬 저장소의 내용을 원격으로 보내는 것

  1. 원격에 없는 커밋을 업로드 하거나
  2. 원격 브랜치를 업데이트

 

 

'메타버스 1기' 카테고리의 다른 글

4/21 컴퓨터 동작 원리  (0) 2022.04.21
4/19 Git 명령어  (0) 2022.04.19
4/15 복습과제  (0) 2022.04.15
4/14 탈출 게임 설명과 업그레이드하기  (0) 2022.04.14
4/13 배열, _getch(), 두 가지 게임 만들기  (0) 2022.04.14