주 메뉴 열기

wwiki β

Git

Jhkim (토론 | 기여)님의 2022년 1월 24일 (월) 11:13 판

목차

config

해당프로젝트에 설정

$ git config user.name "[사용자명]
$ git config user.email "[이메일주소]"

전역적으로 설정하는 경우에 --global 을 추가한다.

clone

새로운 디렉토리에 다른 repository를 복제한다.

pull

다른 repository 또는 로컬 브랜치에서 가져와서 통합한다.

checkout

브랜치간에 전환하거나 작업 디렉토리를 복구한다.

$ git checkout {브랜치명}

branch

--delete

$ git branch --delete <branch-name>

fetch

다른 repository로부터 최신 리비전을 다운 받는다.

clone는 fetch와 merge가 동시에 일어난다.

최신 리비전을 이름없는 브랜치로 가져온다. 이 브랜치를 FETCH_HEAD라는 이름으로 체크아웃할 수도 있다. FETCH_HEAD브랜치를 merge하거나 pull하여 통합할 수 있다.

super-project-pointer라는 이력이 남는다.

merge

둘 이상의 개발기록을 하나로 결합

submodule

서브모듈은 독립적인 저장소이다.

메인 프로젝트를 복제한 경우 각 서브모듈별로 업데이트해야 파일을 받는다.

서브모듈을 수정한 경우엔 master branch로 전환한 후 변경사항을 push한 후에 메인 프로젝트를 push해야한다.

add

$ git submodule add https://github.com/myid/myproject.git

메인모듈에 .gitmodules 이란 파일을 만들어 서브모듈의 정보를 저장한다.

서브모듈의 버전(해시)은 별도의 파일에 저장된다. 메인모듈을 새로 clone하는 경우 서브모듈은 clone되지 않는다. 추가명령으로 받아야 한다.

init

서브모듈을 초기화해 준다. (git init과 동일)

update

원격 저장소에서 파일을 가져온다. 최신버전을 가지고 오는 것이 아니다.

메인모듈의 .git/modules/sub-module/HEAD에 저장된 커밋 해시의 리비전을 가지고 온다.

브랜치를 가지지 않는다.

메인모듈을 clone한 후에 init후 update명령으로 서브모듈을 다운로드할 수 있다.

$ git submodule init
$ git submodule update

서브모듈 수정

master로 checkout하지 않고 서브모듈을 수정했다면 변경사항을 commit하고 다음 명령으로 변경사항을 유지한 채 새 브랜치를 생성한다.

$ git branch <new-branch-name> f496c73

<new-branch-name> 이름을 일시적으로 사용한다면 temp정도를 사용할 수 있다. master로 체크아웃한 후에 merge한다.

$ git checkout master
$ git merge temp

임시 브랜치를 삭제하려면 git branch명령을 사용할 수 있다.