C20::WIKI

SEOUL_still under construction‍
wiki:sw:git
pageinfo
status
Draft

<!DOCTYPE markdown>

Git

개요

Git은 2021년 현재 가장 많이 쓰이는 버전 관리 소프트웨어다.

개념

worktree

다른 버전 관리 시스템과 달리, git은 크게 3가지 공간에서 파일을 다룬다. 저장소(repository)는 작업한 내용(파일 추가, 수정 등)이 저장되는 실제적 공간이다. 저장소의 작업 내용은 .git 디렉토리 안에 저장된다. 워크트리(worktree)는 사용자가 실제로 작업을 수행하는 공간을 뜻한다. 워크트리에서 수정한 내용을 저장소에 반영하기 위해서는, 워크트리의 수정 사항 중 실제로 반영할 내용을 지정하게 된다. 이 단계를 stage라 칭한다. 즉 모든 수정된 파일이 자동으로 stage되지는 않는다. stage를 위해 마련된 가상의 공간을 인덱스(index)라 한다. 즉, 최종적으로 저장소에 commit하였을 때 반영되는 내용은 워크트리가 아닌 인덱스에 존재하는 내용이다.

worktree 지정

git은 기본적으로 (로컬)저장소와 워킹트리가 같은 장소에 있다. 즉 .git 디렉토리는 워킹트리의 하위에 위치하며, 다른 파일들과 혼동하지 않도록 숨김처리되어 있다. 그러나, 원한다면 저장소와 워킹트리의 root를 따로 지정할 수 있다. 예를 들어 /repo/test 디렉토리에 저장소를 만들고, /repo/test/workingtree 폴더의 내용을 작업한다고 한다면, /repo/test 디렉토리에서 git --work-tree './workingtree'로 지정하여 명령어를 수행하면 된다. 이 때, 원격 저장소에 push되는 내용은 /repo/test가 아닌 /repo/test/workingtree를 루트 디렉토리로 간주한다.

명령어

  • git status: 현재 git 상태.
  • git branch <branchname>: <branchname>란 이름으로 새로운 브랜치를 생성한다.
  • git checkout <branchname>: <branchname> 브랜치로 전환한다.
    • git checkout -b <branchname> 옵션을 사용하면 브랜치 생성과 전환을 동시에 수행한다.
  • git push: 로컬 저장소의 커밋 내용을 리모트에 업로드한다.
  • git config: git 설정을 관리.
  • git config --list: 현재 git 설정값을 출력.

wiki/sw/git.txt · 마지막으로 수정됨: 2023/06/14 16:19 저자 clockoon