Git 편집하기
편집을 되돌릴 수 있습니다.
이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
− | |||
− | |||
==config== | ==config== | ||
− | 설정 | + | 해당프로젝트에 설정 |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
$ git config user.name "[사용자명] | $ git config user.name "[사용자명] | ||
$ git config user.email "[이메일주소]" | $ git config user.email "[이메일주소]" | ||
− | --global 을 | + | 전역적으로 설정하는 경우에 --global 을 추가한다. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== clone == | == clone == | ||
새로운 디렉토리에 다른 repository를 복제한다. | 새로운 디렉토리에 다른 repository를 복제한다. | ||
− | |||
− | |||
== init == | == init == | ||
56번째 줄: | 30번째 줄: | ||
== pull == | == pull == | ||
다른 repository 또는 로컬 브랜치에서 가져와서 통합한다. | 다른 repository 또는 로컬 브랜치에서 가져와서 통합한다. | ||
− | |||
− | |||
git init으로 로컬 저장소만 만든 후에 git remote add로 원격 저장소를 추가하여 트래킹 정보가 없는 경우에는 다음 명령을 사용할 수 있다. <syntaxhighlight lang="bash"> | git init으로 로컬 저장소만 만든 후에 git remote add로 원격 저장소를 추가하여 트래킹 정보가 없는 경우에는 다음 명령을 사용할 수 있다. <syntaxhighlight lang="bash"> | ||
68번째 줄: | 40번째 줄: | ||
== branch == | == branch == | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== --delete === | === --delete === | ||
84번째 줄: | 49번째 줄: | ||
clone, pull은 fetch와 merge가 동시에 일어난다. | clone, pull은 fetch와 merge가 동시에 일어난다. | ||
− | 최신 리비전을 이름없는 브랜치로 가져온다. | + | 최신 리비전을 이름없는 브랜치로 가져온다. 이 브랜치를 '''FETCH_HEAD'''라는 이름으로 체크아웃할 수도 있다. FETCH_HEAD브랜치를 merge하거나 pull하여 통합할 수 있다. |
− | |||
− | 이 브랜치를 '''FETCH_HEAD'''라는 이름으로 체크아웃할 수도 있다. FETCH_HEAD브랜치를 merge하거나 | ||
super-project-pointer라는 이력이 남는다. | super-project-pointer라는 이력이 남는다. | ||
94번째 줄: | 57번째 줄: | ||
== submodule == | == submodule == | ||
− | 서브모듈은 독립적인 저장소이다. | + | 서브모듈은 독립적인 저장소이다. |
메인 프로젝트를 복제한 경우 각 서브모듈별로 업데이트해야 파일을 받는다. | 메인 프로젝트를 복제한 경우 각 서브모듈별로 업데이트해야 파일을 받는다. | ||
100번째 줄: | 63번째 줄: | ||
서브모듈을 수정한 경우엔 master branch로 전환한 후 변경사항을 push한 후에 메인 프로젝트를 push해야한다. | 서브모듈을 수정한 경우엔 master branch로 전환한 후 변경사항을 push한 후에 메인 프로젝트를 push해야한다. | ||
− | + | === add === | |
− | |||
− | |||
− | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
$ git submodule add https://github.com/myid/myproject.git | $ git submodule add https://github.com/myid/myproject.git | ||
110번째 줄: | 70번째 줄: | ||
서브모듈의 버전(해시)은 별도의 파일에 저장된다. 메인모듈을 새로 clone하는 경우 서브모듈은 clone되지 않는다. 추가명령으로 받아야 한다. | 서브모듈의 버전(해시)은 별도의 파일에 저장된다. 메인모듈을 새로 clone하는 경우 서브모듈은 clone되지 않는다. 추가명령으로 받아야 한다. | ||
− | + | === init === | |
− | + | 서브모듈을 초기화해 준다. (git init과 동일) | |
− | + | === update === | |
− | |||
− | |||
원격 저장소에서 파일을 가져온다. 최신버전을 가지고 오는 것이 아니다. | 원격 저장소에서 파일을 가져온다. 최신버전을 가지고 오는 것이 아니다. | ||
메인모듈의 ''.git/modules/sub-module/HEAD''에 저장된 커밋 해시의 리비전을 가지고 온다. | 메인모듈의 ''.git/modules/sub-module/HEAD''에 저장된 커밋 해시의 리비전을 가지고 온다. | ||
− | |||
− | |||
− | |||
− | |||
브랜치를 가지지 않는다. | 브랜치를 가지지 않는다. | ||
− | 메인모듈을 clone한 후에 | + | 메인모듈을 clone한 후에 init후 update명령으로 서브모듈을 다운로드할 수 있다.<syntaxhighlight lang="bash"> |
− | $ git submodule update | + | $ git submodule init |
+ | $ git submodule update | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | === | + | === 서브모듈 수정 === |
− | + | master로 checkout하지 않고 서브모듈을 수정했다면 변경사항을 commit하고 다음 명령으로 변경사항을 유지한 채 새 브랜치를 생성한다. | |
− | + | $ git branch <new-branch-name> f496c73 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | master로 checkout하지 않고 서브모듈을 수정했다면 변경사항을 commit하고 | ||
− | $ git | ||
<new-branch-name> 이름을 일시적으로 사용한다면 temp정도를 사용할 수 있다. master로 체크아웃한 후에 merge한다.<syntaxhighlight lang="bash"> | <new-branch-name> 이름을 일시적으로 사용한다면 temp정도를 사용할 수 있다. master로 체크아웃한 후에 merge한다.<syntaxhighlight lang="bash"> | ||
$ git checkout master | $ git checkout master | ||
$ git merge temp | $ git merge temp | ||
</syntaxhighlight>임시 브랜치를 삭제하려면 git [[Git#branch|branch]]명령을 사용할 수 있다. | </syntaxhighlight>임시 브랜치를 삭제하려면 git [[Git#branch|branch]]명령을 사용할 수 있다. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
[[분류:명령어]] | [[분류:명령어]] | ||
[[분류:프로그래밍]] | [[분류:프로그래밍]] |