tool:source-control:git
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| tool:source-control:git [2013/12/11 18:56] – [Rebase] kieuns | tool:source-control:git [2024/04/23 22:44] (현재) – 바깥 편집 127.0.0.1 | ||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| + | ====== OSX에서 한글 깨지는 경우 ====== | ||
| + | |||
| + | 한글이 깨지거나, | ||
| + | |||
| + | * [[https:// | ||
| + | |||
| + | **core.precomposeunicode** 옵션을 **true**로 변경. | ||
| + | |||
| + | < | ||
| + | // for global | ||
| + | git config --global core.precomposeunicode true | ||
| + | |||
| + | // for local (each git folder) | ||
| + | git config --local core.precomposeunicode true | ||
| + | </ | ||
| + | |||
| + | 또는, 각 git 폴더에 **.git**폴더에 들어가서 **config** 파일을 열어서 | ||
| + | |||
| + | < | ||
| + | precomposeunicode = false ;; false -> true로 변경 | ||
| + | </ | ||
| + | |||
| + | |||
| + | ====== 연습사이트 ====== | ||
| + | |||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | |||
| + | ====== SubModule ====== | ||
| + | |||
| + | ===== 나이스하게 삭제가 안될때 ===== | ||
| + | |||
| + | - GIT 최상단 폴더의 **.gitmodules** 파일에서 삭제할 서브 모듈을 지운다.< | ||
| + | [submodule " | ||
| + | path = t@3/ | ||
| + | url = https://<< | ||
| + | - 해당 서브 모듈 폴더를 삭제한다. \\ **t@3/ | ||
| + | - 커밋< | ||
| + | |||
| + | ===== 특정 모듈을 한 GIT 리파지토리의 각각 다른 폴더에 서브모듈로 넣으려고 할때 ===== | ||
| + | |||
| + | TortoiseGIT에서는 안되니, 커맨드로 처리. GIT의 < | ||
| + | 난 마구잡이로 넣어서 쓰다보니 이런 일도. | ||
| + | |||
| + | 아래 처럼 각 B, C 폴더에 subA 를 서브모듈로 추가하고 싶다면, | ||
| + | < | ||
| + | A | ||
| + | +-- B | ||
| + | +-- (subA) | ||
| + | +-- C | ||
| + | +-- (subA) | ||
| + | </ | ||
| + | |||
| + | - B 폴더에는 다른 툴로(예: | ||
| + | - C 폴더는 커맨드 라인 창을 열고,< | ||
| + | git submodule add --force <GIT 리파지토리> | ||
| + | </ | ||
| + | * **GIT 리파지토리**는 **Remote** 또는 **로컬 GIT** 리파지토리 상관 없다. | ||
| + | * **대상폴더** : 대상 폴더가 없어야 한다. 있으면 에러 난다. | ||
| + | |||
| + | ====== SubTree ====== | ||
| + | |||
| + | * 기회되면 사용해보는 것으로. | ||
| + | * [[http:// | ||
| + | ====== Guide ====== | ||
| + | |||
| + | ===== gc ===== | ||
| + | |||
| + | 리파지토리 다시 재정리 | ||
| + | |||
| + | < | ||
| + | git gc | ||
| + | </ | ||
| + | |||
| + | ===== pull ===== | ||
| + | |||
| + | * git 로컬저장소에 원격으로부터 변경된 데이터를 전부 내려받는다. 내려 받은 뒤, 현재 워킹카피(HEAD)와 merge 되는 것이 아니다. | ||
| + | * 변경 사항을 리뷰한 다음 머지할 것인지는 본인 결정. | ||
| + | * 최신본을 받아서, 합할 것인가 등은 본인이 다시 판단. (그래봐야 merge?) | ||
| + | | ||
| + | ===== commit ===== | ||
| + | |||
| + | * 소스를 저장소에 저장 | ||
| + | * 현재 브랜치(예를 들어 master)가 commit한 버젼을 가리키게 되고, HEAD 가 된다. | ||
| + | |||
| + | < | ||
| + | git commit | ||
| + | </ | ||
| + | |||
| + | ===== branch ===== | ||
| + | |||
| + | * 현재 HEAD에 위치에서 새로운 브랜치를 만든다. | ||
| + | |||
| + | < | ||
| + | // git branch < | ||
| + | git branch bugFix1 // bugFix1으로 브랜치를 한개 만든다. | ||
| + | </ | ||
| + | | ||
| + | ===== checkout ===== | ||
| + | |||
| + | * 현재 워킹폴더의 브랜치에서 다른 브랜치로 이동하는 경우 사용 | ||
| + | * 브랜치가 | ||
| + | * master, bugFix1 이 있는데, | ||
| + | * 현재 워킹폴더는 bugFix1 | ||
| + | * 그런데 master가 이미 다른 커밋이 있어버린다면, | ||
| + | |||
| + | < | ||
| + | // 현재 로컬저장소의 HEAD가 " | ||
| + | git checkout bugFix1 | ||
| + | </ | ||
| + | |||
| + | ===== merge ===== | ||
| + | |||
| + | * 브랜치가 2개 | ||
| + | * bugFix1 | ||
| + | * master : 로컬저장소의 HEAD는 여기 | ||
| + | |||
| + | < | ||
| + | // bugFix1 --> master 브랜치로 merge | ||
| + | git merge bugFix1 master | ||
| + | </ | ||
| + | |||
| + | 결과는 bugFix1가 master에 머지 되면서 , master는 새로은 커밋을 하게 된다. | ||
| + | |||
| + | ===== Rebase : 재배치 ===== | ||
| + | |||
| + | 커밋을 모아서 복사한 후에 다른 곳으로 옮기는 것 --> 커밋 흐름을 보기 좋게 한줄로 만들 수 있어서 이력이 더 깨끗하게 보인다. | ||
| + | |||
| + | 그림이 있는 설명이 이해하기 편하므로, | ||
| + | |||
| + | | {{: | ||
| + | | {{: | ||
| + | | {{: | ||
| + | | {{: | ||
| + | |||
| + | ===== Revert : 되돌리기 ===== | ||
| + | |||
| + | 되돌리는 방법 | ||
| + | * git reset : 예전 브랜치로 HEAD를 이동하는 것. reset 후에는 새롭게 HEAD로 지정된 부분(과거 코드로 돌아갔기 때문에) 외에는 무시된다. \\ 자신의 로컬저장소에서 작업하는 것을 되돌린다. | ||
| + | * git revert : 리모트 브랜치에 대해서 작업을 되돌릴때 사용한다. | ||
| + | |||
| + | reset | ||
| + | |||
| + | | {{: | ||
| + | | {{: | ||
| + | |||
| + | revert | ||
| + | |||
| + | | {{: | ||
| + | | {{: | ||
| + | |||
| + | |||
| + | ====== Quick Guide ====== | ||
| + | |||
| + | [[http:// | ||
| + | |||
| + | {{url> | ||
| + | |||
| + | ====== 윈도우용 ====== | ||
| + | * [[http:// | ||
| + | ===== 각종 튜토리얼 링크 ===== | ||
| + | * 너무 많아서 놀랬다. | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | |||
| + | ====== GIT-GUI ====== | ||
| + | |||
| + | * 일문 메시지 삭제 , 영문으로 보이게 하는 방법을 몰라서 일문 메시지 삭제. | ||
| + | * < | ||
| + | * jp로 시작하는 파일 이름 변경. | ||