Git

김회민·2022년 5월 9일
1

Git

목록 보기
1/1
post-thumbnail

형상관리 프로그램

형상관리?

  • Configuration Management
  • 소프트웨어 버전 관리
  • 소스의 변화를 끊임없이 관리
  • 소스를 버전 별로 관리할 수 있어서 개발할 때 실수로 소스를 삭제하거나, 수정하기 이전으로 돌아가야되는 경우 유용
  • 팀프로젝트에서 누가 무엇을 어떻게 수정했는지 알 수 있어서 코드를 병합하거나 수정된 소스를 추적할 수 있다.

Git

  • 형상 관리 도구 ( Configuration Management Tool ) 중에 하나
  • Branch의 비용이 매우 싸다.
  • 로컬에서 진행되기 때문에 인터넷이 연결되어 있지 않아도 버전 관리가 가능하다.
  • 팀원 각자가 병렬 개발하고 나서 합칠때
  • 언제든지 버전을 매우 빠르게 되돌릴 수 있다.

SVN vs GIT

SVNGIT
CommitServerLocal
BranchDeep CopyAddress Copy
History중앙 서버에서 관리여러 개발 PC에서 관리

GitHub

GitHub: Where the world builds software

대표적인 Git 웹 호스팅 시스템

Git으로 관리하던 로컬 파일을 저장해주는 웹 서비스이다.

GitHub을 통해 자신의 코드를 백업하고 다른 사람에게 코드를 보여줄 수 있다.

협업을 관리할 수 있다.

커멘드

설정

  • git init
    • 로컬 스토리지 초기화.
    • .git 폴더가 만들어진다.
  • git remote [REMOTE_NAME][Repogitory_URL]
    • Repogitory_URL을 REMOTE_NAME에 저장한다.

추가

  • git add [FILE]
    • 변경사항이 있는 FILE을 등록.
  • git commit -m “MSG”
    • 등록한 FILE을 Message와 함께 등록을 확정하고 저장한다.

확인

  • git status
    • Untracked : git에서 관리하고 있지 않은 파일
    • Tracked : git에서 관리하는 파일
      • Staged : git add
      • Committed : git commit
      • Modified : commit된 파일이 수정되었을 때의 상태
  • git log
    • 현재까지 커밋된 상태를 시간 순서로 나열하여 보여줌
    • —graph 옵션은 branch를 graph의 형태로 보여줌

취소

  • git reset
    • 커밋 취소하기
    • 기록을 남기지 않고 특정 commit으로 되돌아감
    • —hard option을 넣으면 reset한 commit은 영구히 삭제됨
    • A → B (fail) ⇒ A
  • git revert
    • 커밋 내용 되돌리기
    • 선택한 commit을 유지한 채로 새로운 commit을 만듬
    • A → B (fail) ⇒ A → B (fail) → C

업로드

  • git push [REMOTE_NAME][BRANCH_NAME]
    • 로컬에 저장되어 있는 Git 내용들을 Repository에 업로드

다운로드

  • git fetch [REMOTE_NAME][BRANCH_NAME]
    • 이미 관리되고 있는 Repogitory에서 업데이트된 원격 저장소의 내용을 다운로드한다.
    • 새로운 커밋을 생성하지만, 로컬 HEAD의 위치를 변경하지는 않는다.
  • git pull [REMOTE_NAME][BRANCH_NAME]
    • fetch + merge
  • git clone [Repogitory_URL][DIR]
    • Repogitory에 올라가 있는 코드를 다운로드
    • 새로운 폴더에 Repogitory를 복사

Branch

  • git branch [BRANCH_NAME]
    • BRANCH_NAME이라는 branch 신규 생성
  • git checkout [BRANCH_NAME]
    • 생성되어있는 branch 중, BRANCH_NAME에 해당하는 branch로 이동

병합

  • git merge [BRANCH_NAME]
    • 현재 선택된 branch의 내용을 BRANCH_NAME에 병합
    • A → B → C → D ( main )
    • B → E → F ( feature )
    • A → B → C → D → G ( main, feature )
    • B → E → F → G
  • git rebase [BRANCH_NAME]
    • A → B → C → D ( main )
    • B → E → F ( feature )
    • A → B → C → D ( main ) → E → F ( feature )

참조

https://goddaehee.tistory.com/158
https://velog.io/@lzhxxn/Git-%EC%9D%B4%EB%9E%80
https://sabarada.tistory.com/71?category=792135
https://www.youtube.com/watch?v=NBb-FFB2mJk

profile
백엔드 개발자 지망생

0개의 댓글